有没有办法将char作为const连接字符串?

时间:2012-02-27 05:16:44

标签: c# string char const constants

如果我尝试

const char NoChar = (char)8470; //№
const char TmChar = (char)8482; //™
const string IdDisplayName = "Clements" + TmChar + ' ' + NoChar;

会抛出编译错误:

  

分配给“{0}”的表达式必须是常量

据我所知,发生此错误是因为char是因为字符串连接运算符(+)在连接对象上内部调用ToString

我的问题是,是否有办法(非托管?Tongue)来做这件事。

我需要将该常量作为属性传递,并且应该在客户端上生成。

更丑陋的解决方法(根据你的答案会看到什么是丑陋的)是子类化该属性(密封,必须进行一些反编译和复制粘贴工作)并将其嵌入为非const将是可能的。

2 个答案:

答案 0 :(得分:6)

您可以通过\u转义直接在字符串中指定unicode字符值。所以const string IdDisplayName = "Clements\u2122 \u2116";应该能得到你想要的东西。

答案 1 :(得分:3)

我简单地假设:

const string NoChar = "\x2116"; //№ - Unicode char 8470
const string TmChar = "\x2122"; //™ - Unicode char 8482
const string IdDisplayName = "Clements" + TmChar + " " + NoChar;

是不可接受的?