参数类型'字符串'不能分配给参数类型' int'在枚举参考中

时间:2015-10-19 18:02:33

标签: asp.net vb.net enums

我有以下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中保留了这个功能。我不知道这是否是需要的信息,但我想提供尽可能多的信息

1 个答案:

答案 0 :(得分:2)

这是你当前问题的第二个参数。您需要将其强制转换为正确的枚举类型。

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