我有以下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
当我运行与此函数关联的aspx页面时,我收到以下错误
参数类型'字符串'不能分配给参数类型' int'
这是它引用的代码行
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 :(得分:2)
这是你当前问题的第二个参数。您需要将其强制转换为正确的枚举类型。
Dim vTicketNumber = Convert.ToInt32(txtTicketNumber.Text)
Dim vDocumentType = DirectCast(mTicketStage_ID, TicketDocumentType)
mEFile_GUID = objMain.GetTicketDocument(vTicketNumber, vDocumentType)