Csharp/C#教程:为什么我不能将常量字符串的串联分配给常量字符串?分享


为什么我不能将常量字符串的串联分配给常量字符串?

有时我想分解一个常量字符串,原因是格式化,通常是SQL。

const string SELECT_SQL = "SELECT Field1, Field2, Field3 FROM TABLE1 WHERE Field4 = ?"; 

 const string SELECT_SQL = "SELECT Field1, Field2, Field3 " + "FROM TABLE1 " + "WHERE Field4 = ?"; 

但是,C#编译器不允许第二种forms为常量字符串。 为什么?

嗯,那应该没事……你确定它不会编译吗?

示例代码:

 using System; class Test { const string MyConstant = "Foo" + "Bar" + "Baz"; static void Main() { Console.WriteLine(MyConstant); } } 

我的猜测是,在你的真实代码中,你在连接中包含了一些非常量表达式。

例如,这很好:

 const string MyField = "Field"; const string Sql = "SELECT " + MyField + " FROM TABLE"; 

但这不是:

 static readonly string MyField = "Field"; const string Sql = "SELECT " + MyField + " FROM TABLE"; 

这是试图在常量表达式声明中使用非常量表达式( MyField ) – 这是不允许的。

上述就是C#学习教程:为什么我不能将常量字符串的串联分配给常量字符串?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/936266.html

(0)
上一篇 2021年11月6日
下一篇 2021年11月6日

精彩推荐