W języku C# 6 dostępna jest nowa funkcja: interpolowane ciągi znaków.W jaki sposób używasz dosłownych łańcuchów z interpolacją?
te pozwalają umieścić wyrażeń bezpośrednio w kodzie, zamiast polegać na indeksach:
string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());
Staje:
string s = $"Adding \"{x}\" and {this.Y()} to foobar.";
jednak mamy wiele ciągów w wielu liniach wykorzystujących wierne ciągi (głównie instrukcje SQL):
string s = string.Format(@"Result...
Adding ""{0}"" and {1} to foobar:
{2}", x, this.Y(), x.GetLog());
Powrót do regularnego strin Wydaje się, że gs jest brudny:
string s = "Result...\r\n" +
$"Adding \"{x}\" and {this.Y()} to foobar:\r\n" +
x.GetLog().ToString();
Jak używać zarówno ciągów słownych, jak i interpolowanych?
Jeśli to naprawdę o ciągów SQL, czy istnieje jakikolwiek powód, dlaczego nie jesteś, a nie za pomocą sparametryzowanych kwerend? – svick
"Mamy wiele ciągów w wielu wierszach, używając ciągów znaków słownych (głównie instrukcji SQL)" brzmi, jakbyś miał dużo ciągów SQL umożliwiających ataki SQL injection. –
@ Sick, jesteśmy wszystko, dane wejściowe użytkownika są sparametryzowane. Ciągle używamy dynamicznego SQL, ponieważ dynamicznie tworzymy SQL dla naszych encji w kodzie. – Keith