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

时间:2011-06-29 12:43:49

标签: .net vb.net type-conversion vb.net-to-c#

在C#中有什么替代VB的CBool关键字吗?

所有其他功能呢?

CBool将变为布尔值任何有效布尔值:0"False"null等。

3 个答案:

答案 0 :(得分:9)

诀窍是VB.NET 中的Cxx“函数”实际上不是函数。实际上,它们更像是运算符,编译器将其转换为“最佳匹配”类型转换。

Paul Vick曾经在他的博客上发表了一篇关于这篇文章的精彩文章,但所有这些页面似乎都被删除了。 MSDN(这里大致准确)说:

  

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

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

在C#中没有直接相当的东西:你必须改编译器的想法。

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

答案 1 :(得分:4)

查看System.Convert课程。

答案 2 :(得分:0)

如果您希望从其中一个字符串值转换:“True”,“true”,“False”或“false”,则应使用Boolean.Parse。如果没有得到预期的结果,Parse将“快速失败”,而不是试图“聪明”。通过在不需要时使用“智能”转换,您可能会在其源代码中屏蔽错误,然后在代码中稍后出现时必须跟踪它们,这通常会更加困难。