【问题标题】:Int to Char in C#C# 中的 Int 到 Char
【发布时间】:2010-09-22 07:59:07
【问题描述】:

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

【问题讨论】:

    标签: c# casting


    【解决方案1】:

    gimel 在 PowerShell 中的回答似乎是:

    > [char]65
    A
    > [char]48
    0
    > [char]97
    a
    

    【讨论】:

      【解决方案2】:

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

      string s = Char.ConvertFromUtf32(56);
      

      如果需要,它将为您提供代理 UTF-16 对,如果您不在 BMP 范围内,则可以保护您。

      【讨论】:

        【解决方案3】:
        int i = 65;
        char c = Convert.ToChar(i);
        

        【讨论】:

        • Convert.ToChar 最终执行显式转换为“(char)value”,其中“value”是您的 int 值。在这样做之前,它会检查以确保“值”在 0 到 0xffff 的范围内,如果不是,则抛出 OverflowException。额外的方法调用、值/边界检查和 OverflowException 可能有用,但如果没有,如果只使用“(char)value”,性能会更好。
        【解决方案4】:
        (char)myint;
        

        例如:

        Console.WriteLine("(char)122 is {0}", (char)122);
        

        产量:

        (char)122 是 z

        【讨论】:

        • 这是一个糟糕的答案。 c = (char)49 是 1 而不是 '1'
        • @nykwil 我看不出 gimel 的回答有什么问题。
        • @nykwil - 这是错误信息。 Console.WriteLine((char)49 == '1'); 将给出 Truechar c = (char)49; string s = "1two3"; Console.WriteLine(c == s[0]); 也一样,使用这个演员阵容非常好。您的解释没有提供它不起作用的有效示例。此外,Console.WriteLine((char)49 == 1);false,这实际上使您的评论毫无根据。
        猜你喜欢
        • 2010-10-21
        • 2017-06-21
        • 2011-11-11
        • 2014-11-30
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-27
        相关资源
        最近更新 更多