【发布时间】:2010-11-27 15:38:04
【问题描述】:
如何使此函数可靠地将 sourceValue 转换为类型 T,其中 sourceValue 为 bool 且 T 为 int?
公共静态 T ConvertTo目前,当尝试将 false 转换为 0 并将 true 转换为 1 时,这会引发 InvalidCastException。类型未预定义,这就是此处必须使用泛型的原因。但是,唯一失败的情况是 T:Int32 和 sourceValue:Boolean。
【问题讨论】:
-
只是好奇,但是为什么要为此使用独立的方法呢?如果
b是bool,则执行int x = b ? 1 : 0;。 -
我认为他正在寻找通用解决方案,但这种“边缘”案例不适合。
-
可能。我只是看不到通用转换方法的用例。我并不是说没有有效的,我只是暂时想不到。
-
您的代码甚至无法编译。您的
ConvertTo方法是否有第二次重载但您尚未发布? -
如果“bar”是值类型,则不能使用
foo is bar。is仅适用于引用类型
标签: c#-3.0 int casting boolean