Vb.net 如何将Option Strict修正为不允许从类型';对象';输入';字符串';在复制';ByRef';参数

Vb.net 如何将Option Strict修正为不允许从类型';对象';输入';字符串';在复制';ByRef';参数,vb.net,vb6-migration,Vb.net,Vb6 Migration,下面的代码给出了错误“Option Strict On disallows Trowing from type”Option Strict On disallows Trowing from type”将'ByRef'参数'varExpression'的值复制回匹配参数时从'Object'类型缩小到'String'类型”。请注意,我不想关闭Option Strict。下面是代码 clsDataElemMaintRowXMLDataSet.SetFieldText(TAG_FLD_DEM_AMT

下面的代码给出了错误“Option Strict On disallows Trowing from type”Option Strict On disallows Trowing from type”将'ByRef'参数'varExpression'的值复制回匹配参数时从'Object'类型缩小到'String'类型”。请注意,我不想关闭Option Strict。下面是代码

 clsDataElemMaintRowXMLDataSet.SetFieldText(TAG_FLD_DEM_AMT, IIf(IsNumeric(strAmt), IIf(blnNegativeAmt, "-", "+"), EMPTY_STRING) &                                                           
Format_Renamed(strAmt, MASK_CURRENCY))
这些是上述代码的声明

    Dim clsDataElemMaintRowXMLDataSet As "someclass object"
   Public Sub SetFieldText(strFieldName As String, strFieldText As String)
   Private Const TAG_FLD_DEM_AMT As String = "DEMAmt"
ByVal blnNegativeAmt As Boolean
 Public Const MASK_CURRENCY As String = "$#,##0.00"
 ByVal strAmt As String
  ByVal blnNegativeAmt As Boolean

   Public Function Format_Renamed(ByRef varExpression As Object, ByRef 
    Optional strFormat As String = "", ByRef Optional vbFirstDayOfWeek As 
   FirstDayOfWeek = FirstDayOfWeek.Sunday, ByRef Optional 
    vbFirstWeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1) As 
    String

我得到了答案。基本上,我必须删除&运算符,并且需要使用string.Concat来表示字符串。下面是代码

clsDataElemMaintRowXMLDataSet. 
   SetFieldText(TAG_FLD_DEM_AMT, 
                String.Concat(IIf(IsNumeric(strAmt), 
                              IIf(blnNegativeAmt, "-", "+"), 
                            EMPTY_STRING), Format_Renamed(CObj(strAmt), 
                MASK_CURRENCY))) 

我在你发布的任何代码中都没有看到varExpression。发布带有错误的行以及带有错误的变量声明。你能发布实际的代码吗?你粘贴了一堆行,这些行本身不存在。编辑了原始问题。希望能帮到你。为什么“ByRef varExpression As Object”不能声明为ByRef varExpression作为字符串“?哦,很适合使用option strict;坦率地说,我不认为它应该是一个选项。我将ByRef varExpression更改为字符串”。在那之后,我得到了错误“Option Strict On禁止运算符“&”的Object类型的操作数”。实际上,答案很可能是您永远不应该使用IIF,而应该使用IF,这将导致所有字符串都是字符串,并且使用&和对象不会有问题。