Int到C#中的Char

Boa*_*oaz 88 c# casting

在Int处于有效值范围内的情况下,将Int值转换为Utf16中相应Char的最佳方法是什么?

gim*_*mel 131

(char)myint;
Run Code Online (Sandbox Code Playgroud)

例如:

Console.WriteLine("(char)122 is {0}", (char)122);
Run Code Online (Sandbox Code Playgroud)

收益率:

(char)122是z

  • @nykwil我没有看到gimel的回答有什么问题. (7认同)
  • @nykwil - 那是错误的信息.`Console.WriteLine((char)49 =='1');`会给**真**.`char c =(char)49; string s ="1two3"; Console.WriteLine(c == s [0]);`使用这个演员表非常好.您的解释没有提供有效的例子.此外,`Console.WriteLine((char)49 == 1);`是*false*这实际上使你的评论毫无根据. (7认同)

Cor*_*ger 60

int i = 65;
char c = Convert.ToChar(i);
Run Code Online (Sandbox Code Playgroud)

  • Convert.ToChar最终执行显式转换为"(char)value",其中"value"是你的int值.在执行此操作之前,它会检查以确保"value"在0到0xffff的范围内,如果不是,则抛出OverflowException.额外的方法调用,值/边界检查和OverflowException可能很有用,但如果不是,如果只使用"(char)value",性能会更好. (43认同)

Boa*_*oaz 16

虽然没有完全回答制定的问题,但如果您需要或可以将最终结果作为字符串,您也可以使用

string s = Char.ConvertFromUtf32(56);
Run Code Online (Sandbox Code Playgroud)

如果需要,它将为您提供代理utf16对,如果您不在BMP方面,保护您.