如何将此函数可靠地将sourceValue转换为类型T,其中sourceValue是bool且T是int?cast bool to T其中T是int
public static T ConvertTo<T>(Object sourceValue) { // IF IS OF THE SAME TYPE --> RETURN IMMEDIATELY if (sourceValue is T) return (T) sourceValue; var val = ConvertTo(sourceValue, typeof (T)); return (T) val; }
目前,试图转换假为0,真为1的类型不是预定义的,这就是为什么仿制药必须在这里使用时,这引发InvalidCastException。但是,唯一失败的情况是T:Int32和sourceValue:Boolean。
只是好奇,但为什么你想使用一个独立的方法呢?如果'b'是'bool',只要做'int x = b? 1:0;'。 – bcat 2009-09-11 21:21:34
我认为他正在寻找一个通用的解决方案,但这个“边缘”案件不适合。 – spender 2009-09-11 21:23:15
也许。我只是看不到通用转换方法的用例。我并不是说没有一个有效的,我现在还想不起来。 – bcat 2009-09-11 21:26:31