如何在运行时获取“选项比较”的值?

时间:2012-04-04 09:00:00

标签: .net vb.net

出于调试目的,是否可以在运行时获取Option Compare的值?

(我正在开发一个遗留Windows Forms应用程序,它使用InStr,第一个参数为String(Instr的三参数版本),没有第三个参数由Option Compare确定。Option Compare Text假设InStr不区分大小写;默认值为Option Compare Binary。)

1 个答案:

答案 0 :(得分:5)

选项设置仅在编译时已知。编译器使用OptionCompareAttribute属性处理此问题。当存在于可选参数上时,它将替换选项设置。这启发了这个功能:

Function GetOptionCompare(<CompilerServices.OptionCompare()> _
                          Optional ByVal Compare As CompareMethod = CompareMethod.Binary) As CompareMethod
    Return Compare
End Function

然而,由于不正当的原因,这不起作用。解决问题,只需利用比较方法之间的差异:

Function GetOptionCompare() As CompareMethod
    Return IIf("A" = "a", CompareMethod.Text, CompareMethod.Binary)
End Function

请注意Option Compare可以是每个源文件设置,此功能仅在您依赖Visual Studio默认设置时才有效。这有点不确定。好吧,非常好。嗯,这很糟糕。避免不得不知道设置。