Which is better - (int)value or value as int?
Possible Duplicate:
Direct casting vs 'as' operator?
有人能给我解释一下区别吗?哪一个更好用?我知道在某些情况下我只能使用其中一个。
(int)value
value as int
- stackoverflow.com/questions/496096/…的可能副本
后者无效。你可以使用
如果您需要"转换(如果可能)"。比…慢
1 2 3 4 5
| if (value is int)
{
int x = (int) value;
...
} |
不过。如果你不确定value实际上是int的话,这就是你应该使用的。但是,如果您的代码是这样的,如果value不是表示bug的int,那么就无条件强制转换:
如果失败,它将抛出一个异常——这通常适用于一个bug。
i value as int会导致编译错误,因为operator must be used with a reference type or nullable type ('int' is a non-nullable value type)会导致编译错误。因此,在处理结构时,总是使用(int)value,对于对象,我更喜欢使用obj as SomeType,因为它更清晰、更直接,而且它自动处理异常(如果在转换过程中发生错误,则运算符返回空值)。
- 不例外,这是一个编译器错误。
- 是的,你说得对,我忘了正确的术语,在Java和Java中已经太长了: