2015-07-31 14 views
4

Сегодня я вывожу код с моего клиента, и я получаю сообщение об ошибке в этой строке.Что означают символы доллара в коде C#?

throw new Exception($"One or more errors occurred during removal of the company:{Environment.NewLine}{Environment.NewLine}{exc.Message}"); 

Эта линия также

moreCompanies = $"{moreCompanies},{databaseName}"; 

Символы $ так странно со мной. Это код C#.

+0

Это немного несправедливо, чтобы снизить это с помощью новой функции, которая только что была выпущена. –

+2

@ImmortalBlue. Я также чувствую, что Google очень похож на такие символы, как '=>' и '$'. –

+1

@ImmortalBlue, это вопрос с нулевым усилием. Это то, за что проголосовали. Google ответил бы на этот вопрос за меньшее время, которое я потратил, чтобы написать этот комментарий. –

ответ

10

$ часть сообщает компилятору, что вы хотите interpolated string.

Интерполированные строки являются одной из новых особенностей C# 6.0. Они позволяют заменять заполнители в строковом литерале соответствующими значениями.

Вы можете поместить почти любое выражение между двумя фигурными скобками ({}) внутри интерполированной строки, и это выражение будет заменено представлением ToString результата этого выражения.

Когда компилятор встречает интерполированную строку, он немедленно преобразует его в вызов функции String.Format. Именно из-за этого, что ваш первый список, по сути то же самое, как написание:

throw new Exception(string.Format(
    "One or more errors occured during removal of the company:{0}{1}{2}", 
    Envrionment.NewLine, 
    Environment.NewLine, 
    exc.Message)); 

Как вы можете видеть, интерполированные строки позволяют выразить то же самое в гораздо более сжатой форме и таким образом, что проще чтобы получить правильное.

+0

Большое спасибо! Вы сохранили мое время :) – user3682707

+1

Стоит отметить, что если вы получите сообщение об ошибке в этой строке (как вы говорите, то), то у вас, вероятно, нет Visual Studio 2015. Вам нужно либо: 1) перейти на новую визуальную Studio 2015 или 2) изменить весь этот код и, возможно, 3) поговорить с вашим клиентом о том, чтобы не использовать эти функции до тех пор, пока вы не обновите их. –

+0

@ LasseV.Karlsen Спасибо за это дополнение. –

Смежные вопросы