记得编译器会自动联接字符串,求证一下
1. string str = "a " + "b " + "c " + "d ";
这样的字符串是否编译器会自动优化为 "abcd " ?
2. string s1 = ....;
string s2 = "a " + "b " + s1 + "c " + "d ";
这样的字符串又是否会自动联接为 "ab " + s1 + "cd " ?
主要是在SQL语句的书写中 为了提高可读性
string sql = "INSERT INTO tablename (...) VALUES ( " +
field1 + ", " + // int
" ' " + field2 + " ', " + // string
" ' " + field3 + " ', " + // string
"to_date( ' " + field4 + " ', 'yyyy-mm-dd '), " + //datetime
.......;
这样写是否编译器会自动优化 不至于影响性能吧 有否必要一定把 " ', " + " ' " 写成 " ', ' "
一条小语句 也用不着StringBuilder吧
------解决方案--------------------常量编译器会进行替换.
包括字符串.
------解决方案--------------------编译器会自动联接字符串是在编译时字符串常量(变量不行)会生成拼接后的字符串代替原来的表达式 所以 "a " + "b " + "c " + "d ";在IL代码里会变成 "abcd " 而 "a " + "b " + s1 + "c " + "d ";要最决于s1是否是常量 拼接SQL语句建议使用String.Format