*С C# 6.0 и приятели, фигурните скоби вече не са само за string.Format
! Сега те могат да означават интерполирани низове, където можете да смесвате C# обекти и код без всички string.Format
& {0} {1} {2}
допълнителни разходи.
ЗАБЕЛЕЖКА: Интерполираните низове започват със знак за долар: $
От езиковата справочна страница, свързана по-горе :
Използва се за конструиране на низове. Интерполиран низ изглежда като шаблонен низ, който съдържа интерполирани изрази. Интерполиран низ връща низ, който замества интерполираните изрази, които съдържа, с техните низови представяния.
Аргументите на интерполиран низ са по-лесни за разбиране от низ в съставен формат. Например интерполираният низ
Console.WriteLine($"Name = {name}, hours = {hours:hh}");
съдържа два интерполирани израза, '{name}' и '{hours:hh}'. Еквивалентният низ в съставен формат е:
Console.WriteLine("Name = {0}, hours = {1:hh}", name, hours);
Забележка: Ако не сте знаели, Console.WriteLine
има нещо като вградено string.Format
, което може да не е очевидно в горния пример, ако не сте разбрали, че влиза.
Ако искате да получите същия низ, без да разчитате на магията Console.WriteLine, може да е по-лесно да прочетете, че това...
string message = $"Name = {name}, hours = {hours:hh}"; // interpolated
... е еквивалентно на...
string message = string.Format("Name = {0}, hours = {1:hh}", name, hours); // old school
Структурата на интерполиран низ е:
$"<text> {<interpolated-expression> [,<field-width>] [<:format-string>] } <text> ..."
където:
- ширина на полето е цяло число със знак, което показва броя на знаците в полето. Ако е положителен, полето е подравнено вдясно; ако е отрицателен, подравнен вляво.
- format-string е форматиращ низ, подходящ за типа обект, който се форматира. Например, за стойност на DateTime, това може да бъде стандартен низ за формат на дата и час като "D" или "d".
Можете да използвате интерполиран низ навсякъде, където можете да използвате низов литерал. Интерполираният низ се оценява всеки път, когато кодът с интерполирания низ се изпълни. Това ви позволява да разделите дефиницията и оценката на интерполиран низ.
За да включите къдрава скоба ("{" или "}") в интерполиран низ, използвайте две къдрави скоби, "{{" или "}}".
* Както @Ben посочва в коментар по-горе. (Съжалявам, пропуснах това на влизане.)
person
ruffin
schedule
07.06.2017