35 lines
2.2 KiB
Markdown
35 lines
2.2 KiB
Markdown
|
---
|
|||
|
title: nameof Expressions
|
|||
|
localeTitle: Имя выражения
|
|||
|
---
|
|||
|
# Имя выражения
|
|||
|
|
|||
|
Иногда вам требуется имя строки переменной, типа или члена для таких вещей, как сбор исключений, запись или изменение свойств измененных событий. До C # 6.0 вы можете использовать строковый литерал для таких целей.
|
|||
|
|
|||
|
# #
|
|||
|
```
|
|||
|
public void ProcessStudent(Student student)
|
|||
|
{
|
|||
|
if (student == null) throw new ArgumentNullException("student");
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Однако, если параметр студента должен был быть переименован, вам также нужно будет запомнить строковый литерал. Теперь с выражениями nameof вам не нужно использовать строковые литералы, и компилятор сможет предупредить вас, если вы используете неправильное имя.
|
|||
|
|
|||
|
# #
|
|||
|
```
|
|||
|
public void ProcessStudent(Student student)
|
|||
|
{
|
|||
|
if (student == null) throw new ArgumentNullException(nameof(student));
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Некоторые примеры того, где имена выражений могут быть полезными, включают:
|
|||
|
|
|||
|
* Выбрасывание исключений при проверке параметров
|
|||
|
* Передача имени действия при настройке ссылок на действия MVC
|
|||
|
* Необходимо передать имя свойства при запуске события с измененным свойством в классе, который реализует INotifyPropertyChanged
|
|||
|
* Передача имени свойства при регистрации свойства зависимости XAML
|
|||
|
* Включение имени переменной, типа или имени при регистрации
|
|||
|
|
|||
|
Следует отметить, что если вы укажете имя с квалифицированным именем, компилятор сгенерирует строку для самого правого имени.
|