C#中'(int)a','a as int'和Convert.ToInt32(a)之间的区别

时间:2014-10-19 13:58:52

标签: c# variables int

以下演员/转换有什么区别。

string a = 5;
int b = (int)a;
int  c = a as int;
int d = Convert.ToInt32(a);

只是想知道这些不同的方法以及相应的使用方法。

1 个答案:

答案 0 :(得分:3)

(int)a只是对Int32类型的强制转换,需要a为数值(浮点数,长整数等)

Convert.ToInt32(a)会将任何数据类型正确转换为int - 包括string s - 而不是仅将其转换为其他类型。

a as int(int)a具有相同的隐式转换(强制转换),因此它们大致相同。

注意事项:

  • as只能与可空/引用类型一起使用,而int只能在非可空中使用。将int?as
  • 一起使用
  • (int)long会在long as int?返回null
  • 时返回异常