Pie*_*aki 0 c# string stringbuilder
在我当前的项目中,他们将每个SQL查询都放在“ QueryList”类中,每个查询都是一个不同的Get方法。我不明白的是,它们在这些方法中使用StringBuilder来构建常量字符串,在它们中没有使用任何操作或串联。当我对此提出疑问时,他们说,最好使用串联。据我所知,字符串文字的串联由编译器解决,对吗?编译器中是否对此类StringBuilder代码进行了优化?
我在Java中看到了类似的问题(用于常量的Stringbuilder),对于C#是否应该相同?
public static class QueryList
{
private static StringBuilder GetQuery
{
get
{
StringBuilder query = new StringBuilder();
query.Append(" INSERT INTO ");
query.Append(" MyTable ");
query.Append(" (column1, column2) ");
query.Append(" VALUES ");
query.Append(" (@val1 , @val2) ");
return query;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在其中被称为
string query = QueryList.GetQuery.ToString();
Run Code Online (Sandbox Code Playgroud)
我进行了一些计数,大约有700种此类方法的调用,所有方法后面都带有“ .ToString();”。我知道在进行实际的字符串连接时会更好,但是只有34个需要它的调用。该程序每秒大约有200个查询。
如果要返回常量 string,请执行以下操作:
// I've removed "Get" from the name
private const string Query =
@"INSERT INTO MyTable (
column1,
column2)
VALUES (
@val1,
@val2)";
Run Code Online (Sandbox Code Playgroud)
不需要 StringBuilder
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |