为什么使用 as 运算符将 int 转换为字符是无效的
本文关键字:字符 无效 转换 int as 运算符 为什么 | 更新日期: 2023-09-27 17:56:42
在C#中有两种强制转换方式:
-
foo as int
-
(int)foo
为什么第一行不编译,第二行编译?
Console.Write(49 as char);
Console.Write((char)49);
来自 MSDN:
可以使用 as 运算符在兼容的引用类型或可为 null 的类型之间执行某些类型的转换。
char
既不是引用类型,也不是可为空的类型。它无法将 49
的输出变量设置为 null
(当转换失败时),因为它不可为空。不过,它可以与char?
一起使用,尽管在这种情况下毫无用处。