GetType, typeof and is, to handle null and conversion
Possible Duplicate:
Type Checking: typeof, GetType, or is?
以下两者有什么区别:
1 2 3 4 5 6 7 8 9 10 11
| 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将为空。这些函数能处理这种情况吗?
(我需要将"值"转换为长?例如:C.客户ID=(长?)价值;)
我可以使用:长?ID =(A长)?
- 你在发布之前搜索过吗?
- @我添加了一个关于空值的问题。请看问题。
- 嗯,你在一个测试项目中试过看行为是什么吗?
第一个使用实例a,如果a是null,则会抛出异常。它比较使用Type类的类型。
第二种方法不起作用,因为typeof只使用类型名,而不使用实例。
最后,你是说a是INT64类型。如果a是null,则不会引发异常。这是首选方法。
然而,在您的情况下,您可以做的转换
1
| c.CustomerId = value as long?; |
- 我可以用:长的吗?ID =(A长)??
- is总是返回false用于null。
- 当然-如果不能进行转换,它将把null插入id。
- @朱利安-更新了我的答案。