如果我尝试
const char NoChar = (char)8470; //№
const char TmChar = (char)8482; //™
const string IdDisplayName = "Clements" + TmChar + ' ' + NoChar;
会抛出编译错误:
分配给“{0}”的表达式必须是常量
据我所知,发生此错误是因为char是因为字符串连接运算符(+
)在连接对象上内部调用ToString
。
我的问题是,是否有办法(非托管?)来做这件事。
我需要将该常量作为属性传递,并且应该在客户端上生成。
更丑陋的解决方法(根据你的答案会看到什么是丑陋的)是子类化该属性(密封,必须进行一些反编译和复制粘贴工作)并将其嵌入为非const将是可能的。
答案 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;
是不可接受的?