Почему я не могу использовать префикс @ $ перед строками? - PullRequest
0 голосов
/ 31 января 2019

Все эти строковые префиксы разрешены для использования в C #:

  "text"
 @"text"
 $"text"
$@"text"

Почему бы и нет?

@$"text"

Можно было бы подумать, что порядок этих операторов не 'Это не имеет значения, потому что они не имеют другого значения в C #, кроме префикса строк.Я не могу вспомнить ситуацию, когда этот инвертированный двойной префикс не компилируется.Применяется ли приказ только в эстетических целях?

Ответы [ 3 ]

0 голосов
/ 31 января 2019

Эти префиксы не являются операторами.Они интерпретируются только компилятором.Хотя он понимает $@, он не понимает @$.Зачем?Поскольку команда Microsoft по компиляции решила так.

Однако поддержка последнего запланирована для C # 8.0

0 голосов
/ 31 января 2019

Согласно msDocs

Строковая интерполированная строка начинается с символа $, за которым следует символ @.

токен $ долженпоявляются перед токеном @ в дословно интерполированной строке.

Возможно, именно так они и были разработаны, чтобы быть понятными в текущей версии компилятора c #.

0 голосов
/ 31 января 2019

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

Хорошие новости, однако, в версии 8 C #, которая должна появиться в не слишком отдаленном будущем, это будетпозволил.Вы можете попробовать его, если установите предварительный просмотр Visual Studio 2019.

...