2015-10-19 91 views
0

我有以下vb.net功能:參數類型「串」不分配枚舉參考參數類型「詮釋」

Public Function GetTicketDocument(ByVal vTicketNumber As Int32, ByVal vDocumentType As TicketDocumentType) As String 

    Dim objO_Int As New dtIntegration_v10_r1.OmniqueManager(mobjSecurity) 
    Dim strTicketFormat As String = "" 
    Dim strEFILE_GUID As String = "" 

    Select Case vDocumentType 

     Case TicketDocumentType.tdtEstimate 
      strTicketFormat = "Estimate" 
     Case TicketDocumentType.tdtRepairOrder 
      strTicketFormat = "RepairOrder" 
     Case TicketDocumentType.tdtInvoice 
      strTicketFormat = "Invoice" 
    End Select 
    strEFILE_GUID = objO_Int.GetTicketDocument(vTicketNumber, strTicketFormat) 

    Return strEFILE_GUID 

End Function 

,當我運行與此函數I相關的aspx頁面出現以下錯誤

參數類型「串」不分配給參數類型「詮釋」

,這是該行代碼,它引用

mEFile_GUID = objMain.GetTicketDocument(txtTicketNumber.Text, mTicketStage_ID); 

人會想到所有你需要做的就是這樣的事情

mEFile_GUID = objMain.GetTicketDocument(Convert.ToInt32(txtTicketNumber.Text), mTicketStage_ID); 

然而,當我這樣做,我得到這個錯誤,我不知道如何解決

參數類型'int'不可分配給參數類型'dtlService_v10_r1.Manager.TicketDocumentType'

有沒有人遇到過這個?如果需要,我可以發佈dll'dtlService_v10_r1',但它非常冗長只是讓你知道

哦,可能還有一些重要的信息是,這是一個從vb.net到c#的轉換過程,我們保持函數在vb.net。我不知道這是否是需要的信息,但我喜歡儘可能多地提供信息

+0

估計是mTicketStage_ID參數,你需要通過枚舉值像TicketDocumentType.tdtEstimate – V4Vendetta

+0

你有兩個問題(1個錯誤信息,並不意味着1層的問題,但你必須先解決1個問題,然後見),並且你修正了第一個(恭喜)。現在,您必須通過將枚舉作爲枚舉來處理第二個。 – varocarbas

回答

2

這是您當前問題的第二個參數。您需要將其轉換爲正確的枚舉類型。

Dim vTicketNumber = Convert.ToInt32(txtTicketNumber.Text) 
Dim vDocumentType = DirectCast(mTicketStage_ID, TicketDocumentType) 
mEFile_GUID = objMain.GetTicketDocument(vTicketNumber, vDocumentType) 
+0

謝謝Magnus,那就是解決方案。我不熟悉VB,以便可以解釋它:-) – MaximusPrime

相關問題