对255以上的整数进行字符强制转换

本文关键字:字符 转换 整数 | 更新日期: 2023-09-27 18:23:49

只是一个简单的例子-为什么c#允许对255以上的int进行字符强制转换?

例如

Console.Write((char)300);

它不应该返回字符,但它会返回(即使是大整数),那么它是如何确定这些字符的呢?它能自动翻译成不同的字符格式吗?

对255以上的整数进行字符强制转换

因为.NET中的字符是Unicode字符,即16位长。

除了16位长之外,您还可以执行以下操作:

unchecked
{
   char c = (char) 70000;
   MessageBox.Show(((int)c).ToString());
}

它给出(70000%65536)。66536是16位数字的最大值。