在 C# 中常常因為需要配合參數而動態地產生相對應的 SQL 查詢條件字串,StringBuilder 應該是公認能兼顧字串串接效能的解法,不過加號(+)還真是好用啊!相較於使用 StringBuilder,用加號來串接字串簡單又直接,因此我利用隱含轉換(implicit)來搞一個用加號串接字串,但背後其實是 StringBuilder 的解法。
在 C# 中寫 SQL 語法,我一直以來的習慣是讓整個語法的字串靠左對齊,一是為了維持 SQL 語法的整潔,二是避免多傳送不必要的空白字元,原本使用 StringBuilder 時,@"
被程式碼格式化工具當成過長的參數
而折行。
這種感覺就像鞋底跑進小石子,礙虐礙虐,所以我弄了一個 SqlBuilder
,裡面寫好加號的隱含轉換程式,讓我可以用加號來串接組合 SQL 查詢語法。
原先使用 StringBuilder 的寫法,在隱含轉換施展之後變這個樣子: