以下内容之间有什么区别:
bool isLong (object a){
return (a.GetType()==typeof(INT64));
}
bool isLong (object a){
return (typeof(a)==typeof(INT64));
}
bool isLong (object a){
return (a is INT64);
}
另外。有一个选项,a将为null。这些功能可以处理这种情况吗?
( 我需要将“值”转换为long?例如: c.CustomerId =(长?)值; )
我可以使用: 长? id =(a a long?)答案 0 :(得分:1)
第一个使用实例a
,如果a
为null
,则会抛出异常。它使用Type
类比较类型。
第二种方式不起作用,因为typeof
仅适用于类型名称,而不适用于实例。
最后一种方法是,a
的类型为INT64
。如果a
为null
,则不会抛出异常。这是首选方法。
但是在你的情况下,你可以进行转换
c.CustomerId = value as long?;