Mat*_*lko 3 .net vb.net performance types type-conversion
如果我尝试将一个字符串放入一个布尔变量,如下所示:
Dim testValue As String = "True"
Dim bool1 As Boolean = testValue
Run Code Online (Sandbox Code Playgroud)
随着Option Strict On我得到一个错误,并建议修复方法就是改变第二行:
Dim bool1 As Boolean = CBool(testValue)
Run Code Online (Sandbox Code Playgroud)
这很好,但是 - 这样做的优点/缺点是什么:
Dim bool1 As Boolean = Boolean.Parse(testValue)
Run Code Online (Sandbox Code Playgroud)
CBool 感觉非常VB6喜欢我,但我们应该使用哪些,为什么?
如果你知道它在两种情况下都是一个字符串,它应该是一个等价的过程.由于Cbool最终会调用一个函数来转换它.(只要您的值为"True"或"False")
如果使用类似cbool(value)的值并且值是布尔值,则会有所不同.
来自MSDN:
请注意,仅当要解析的字符串在不区分大小写的比较中为"True"(TrueString字段的值)或"False"(FalseString字段的值)时,解析操作才会成功.
从MSDN关于Cbool(以及其他类似的方法):
这些函数是内联编译的,这意味着转换代码是评估表达式的代码的一部分.有时没有调用过程来完成转换,从而提高了性能.每个函数都将表达式强制转换为特定的数据类型
因此,如果您使用cbool(value),如果您的值是布尔值,它只使用它,不需要转换.这使它可能更有效率.
您也可以检查一下: Integer.Parse与CInt
| 归档时间: |
|
| 查看次数: |
1103 次 |
| 最近记录: |