【问题标题】:C# Static cast char to stringC# 静态将 char 转换为字符串
【发布时间】:2019-04-14 04:20:57
【问题描述】:

我正在尝试声明一个常量字符来保存一个键和一个常量字符串来保存一条告诉用户按下键的消息:

...
private const KEY = 'r';
private const string MSG = "Press " + KEY + " to restart.";
...

我需要将键 char 显式转换为字符串,因为隐式转换是在运行时完成的。但是,我无法弄清楚在编译时将字符转换为字符串的方法。我在网上看到过 ToString() ,但它是在运行时执行的,因此不起作用。我将键 char 作为单独的变量,因为它在程序中多次使用。有人知道如何将 char 静态转换为字符串吗?

【问题讨论】:

    标签: c# string type-conversion character string-concatenation


    【解决方案1】:

    简短的回答是你不能用除string 片段之外的任何东西组成string。

    不过,您有几个选择。您可以将这两种常量都设为string 类型:

    private const string KEY = "r";
    private const string MSG = "Press " + KEY + " to restart.";
    

    另一种选择是在运行时编写string:

    private const char KEY = 'r';
    private static string MSG => "Press " + KEY + " to restart.";
    

    【讨论】:

    • 谢谢,我一开始想避免这种情况,但最终每次需要时都需要将其转换为字符串,因此将其存储为字符串是有意义的
    【解决方案2】:

    您不能将const string 与const 的其他值一起使用。

    您可以尝试使用readonly。

    readonly只能修改类构造方法中的值,它会在运行时设置该值。

    private const char KEY = 'r';
    private readonly string MSG = "Press " + KEY + " to restart.";
    

    【讨论】:

    • 谢谢,那会起作用,但我会接受 davidg 的建议,将 char 更改为字符串,因为我最终只需要它作为字符串。不过,我一定会在未来记住这两种方式
    猜你喜欢
    • 2018-03-27
    • 2013-05-13
    • 2012-01-16
    • 2018-09-02
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多