出于调试目的,是否可以在运行时获取Option Compare
的值?
(我正在开发一个遗留Windows Forms应用程序,它使用InStr,第一个参数为String
(Instr的三参数版本),没有第三个参数由Option Compare确定。Option Compare Text
假设InStr不区分大小写;默认值为Option Compare Binary
。)
答案 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默认设置时才有效。这有点不确定。好吧,非常好。嗯,这很糟糕。避免不得不知道设置。