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

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

在 C# 中是否有替代 VB 的 CBool 关键字的方法?

所有其他功能呢?
CBool 将转换为任何有效 bool 值的 bool 值: 0"False"null 等。

最佳答案

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

Paul Vick 曾经在他的博客上有一篇关于此的很棒的文章,但现在所有这些页面似乎都已被删除。 MSDN(这里大部分是准确的)说:

These functions are compiled inline, meaning the conversion code is part of the code that evaluates the expression. Sometimes there is no call to a procedure to accomplish the conversion, which improves performance. Each function coerces an expression to a specific data type.



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

在 C# 中没有直接的等价物:你必须按照编译器的想法来代替。

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

关于.net - 替代 C# 中 VB.NET 的类型转换函数 (CBool​​)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6520809/

相关文章:

c# - 动态数据的正确数据类型?

c# - 异常与验证

java - 如何使用 java.time.ZonedDateTime 生成 UTC 格式的原始 long 值

c++ - 将 Mat 转换为关键点?

swift - 无法将类型 '(CalculatorBrain) -> (Double) -> Double' 的值转换为预期的参数类型 '(Double) -> Double'

c# - ASP.NET MVC Razor 将模型传递给布局

.net - 是否可以从vbscript执行.NET程序集(dll)?

asp.net - 如何在 ASP.NET 中动态生成列表项到无序列表?

vb.net - 如何迭代锯齿状数组?

vb.net - 如何使用字符串 "*"或 "\"作为数学运算符?