答案 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将“快速失败”,而不是试图“聪明”。通过在不需要时使用“智能”转换,您可能会在其源代码中屏蔽错误,然后在代码中稍后出现时必须跟踪它们,这通常会更加困难。