在C#中替代VB.NET的类型转换函数(CBool​​)?

Shi*_*mmy 4 .net vb.net type-conversion vb.net-to-c#

CBool在C#中有没有替代VB的关键字?

所有其他功能呢?

CBool将变成一个布尔任何有效的布尔:0,"False",null等.

Cod*_*ray 10

诀窍在于CxxVB.NET 的"函数" 实际上并不是函数.事实上,它们更像是运算符,编译器将其转换为"最佳匹配"类型转换.

保罗维克曾经在他的博客上发表了一篇关于这篇文章的精彩文章,但所有这些网页似乎都被删除了.MSDN(这里大多数准确)说:

这些函数是内联编译的,这意味着转换代码是评估表达式的代码的一部分.有时没有调用过程来完成转换,从而提高了性能.每个函数都将表达式强制转换为特定的数据类型.

它可用的选项包括直接强制转换(例如:) (bool)var,尝试强制转换(使用as运算符),调用System.Convert类中定义的方法之一,调用适用的Type.Parse方法,以及其他一些策略.

在C#中没有直接的等价物:你必须改编译器的思维.

在这种情况下,您几乎肯定会想要使用该Convert.ToBoolean方法的适当重载,因为该特定方法将具有将值转换为a的必要逻辑bool.直接演员在这里不起作用.