【发布时间】:2015-03-11 10:37:34
【问题描述】:
我正在进行从 VB.NET 到 C# 的代码转换。我发现了这段代码,我正试图绕开它,但我不知道它是如何评估的:
If eToken.ToLower = False Then _
Throw New Exception("An eToken is required for this kind of VPN-Permission.)
我的问题是字符串 eToken.ToLower 和布尔值 False 之间的比较。
我尝试使用转换器,结果如下(这不是 C# 中的有效语句,因为您无法将 string 与 bool 进行比较):
if (eToken.ToLower() == false) {
throw new Exception("An eToken is required for this kind of VPN-Permission.");
}
【问题讨论】:
-
选项是否严格关闭?
-
它可能会进行隐式转换/转换。例如,如果 eToken == "True" 它不会在我的测试中引发异常。
-
是的,实际上。这是给
Microsoft.VisualBasic.CompilerServices.Conversions.ToBoolean(String Value)的电话。 -
@DanielA.White 是的,它已关闭
-
您无法在 VB.NET 中使用 Option Strict On 将字符串与布尔值进行比较。
标签: c# vb.net string boolean comparison