小编Pie*_*aki的帖子

使用StringBuilder获取C#中的常量字符串?

在我当前的项目中,他们将每个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个查询。

c# string stringbuilder

0
推荐指数
1
解决办法
190
查看次数

标签 统计

c# ×1

string ×1

stringbuilder ×1