这是两个非常相似的操作 - 但结果不同(在某些情况下)。
(int) 是一个铸件Operator。运算符用于各种事物,例如加法、减法和按位运算。转换运算符用于隐式(隐式)或显式(显式)将一种类型转换为另一种类型。这是运算符在 C# 代码中从 object 到 int 的示例:
public static explicit operator Int32(object obj)
{
return ((IConvertible)obj).ToInt32();
}
使用Convert 类做同样的事情,但更明确,有时类型会在其类中具有更具体的类型,操作员将使用该类型而不是Convert 类。但更多时候,他们实际上是在调用同一个东西。有关 ToInt32() 方法的示例,请参见 Decimal。
Convert 类方法(来自 .NET source):
public static int ToInt32(object value) {
return value == null? 0: ((IConvertible)value).ToInt32(null);
}
所以一般来说,你可以选择任何一种方式。而且由于您只是在处理拆箱操作(从object 到结构),因此如果您知道类型,就不必担心太多。 -
但是,请注意,如果您传递一个空对象,当您使用Convert.ToInt32(object obj) 时它不会抛出,因为它会返回 0。这可能非常有用。