[C#] Что означает '@' перед именем параметра функции?

agaaaa

internal unsafe delegate void ShaderSource(UInt32 shader, Int32 count, System.String[] @string, Int32* length);

timefim

Убери и узнаешь.

Alexander08

ну типа если хочешь чтоб компилятор не ругался когда ты переменную обзываешь ключевым словом(string, var, for, params и т.д. и т.п.)

agaaaa

Спасибо

klyv

а зачем?..

Alexander08

что зачем? я стабильно в каждом проекте использую локально в функциях переменную @params, просто потому что это название подходит по смыслу

klyv

как бы общего решения сильного (по сравнению с MSIL) ограничения на наименования всё равно не даёт, только пару слов можно лишних использовать...

Alexander08

ты о чем? давай поподробнее?

klyv

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

Dasar

имо, это вовсе лишнее, без этого можно было б обходиться.
основная проблема, что в каждом языке свои ключевые слова.

rosali

странно а почему C# до сих пор не додумались до sql-ного `...` это одновременно и проблему ключевых слов решает, и можно всякие странные символы использовать в именах, разные же языки бывают, где-то например '-' в именах разрешен.

agaaaa

Scheme :o

sergeikozyr

Lisp?

agaaaa

Практически одно и то же.

rosali

не понял чего scheme?

Helga87

КОНТРА

IG_rok777

основная проблема, что в каждом языке свои ключевые слова.
Ты же не будешь писать программу не зная ключевых слов.

Helga87

Рассмотрим случай, когда библиотека написана на VB.NET, а используется из C#. Вполне вероятна ситуация, когда придется вызывать метод этой библиотеки с именем ключевого слова в C#. Для таких случаев и нужен @

IG_rok777

Да, не подумал.
Оставить комментарий
Имя или ник:
Комментарий: