Подтвердить что ты не робот

Используйте длинное зарезервированное слово как имя переменной в С#

немного необычный... но мне было интересно, знает ли кто-нибудь, как я могу объявить зарезервированное слово как переменную. У меня есть следующий код, но мне не нравится использование длинного имени переменной. Я знаю, что могу переименовать его, но, чтобы узнать, как это сделать, я хотел бы знать, возможно ли это.

private string lat;
private string long;

public string Lat 
{ 
    get
    {
        return lat;                
    }
}

public string Long 
{ 
    get
    {
        return long;
    }
}
4b9b3361

Ответ 1

Да, вы можете, если хотите:

private string @long;

Фактическое имя переменной (как указано отражением и т.д.) - это просто long; знак @ сообщает компилятору игнорировать тот факт, что это также ключевое слово.

Я бы очень советовал против этого, однако.

Ответ 2

Как уже упоминалось, вы можете избежать зарезервированного слова с помощью "@".

В вашем примере вам действительно не нужно, я бы написал свойство следующим образом:

private string _long;
public string Long 
{ 
    get
    {
        return _long;
    }
}

И подчеркивание и капитал L делают его компиляцией.

Но это своего рода традиция называть их Lat и Lon

Ответ 3

Да, вы можете. Использование символа @.
Это будет работать, например: private string @long;
Выполнение этого настоятельно не рекомендуется, но это возможно.

Ответ 4

Не тот ответ, который я знаю, поскольку я избегаю использования зарезервированных слов в качестве имен переменных, но если вы настаиваете, то, по крайней мере, используйте следующее:

private string lat;
private string @long;

public string Lat 
{ 
    get
    {
        return this.lat;                
    }
}

public string Long 
{ 
    get
    {
        return this.long;
    }
}

Ответ 5

Я могу опоздать на эту вечеринку, но я подумал, что я бы выбрал другое место, где использование зарезервированного слова в качестве имени переменной - хорошая идея!

Я пишу веб-элемент управления, где я хочу, чтобы одно из свойств было "классом" аналогично тому, как другие элементы имеют свойство "class".

Итак, я сделаю свое свойство следующим: "public string @class {get {} set {}}"