以下演员/转换有什么区别。
string a = 5;
int b = (int)a;
int c = a as int;
int d = Convert.ToInt32(a);
只是想知道这些不同的方法以及相应的使用方法。
答案 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