C# рефлексия

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть к примеру класс
class User
{
    public string Name {get;set;}
}
я реализую ему интерфейс INotifyPropertyChanged
class User : INotifyPropertyChanged
{
    private string _Name;
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value
            NotifyPropertyChanged("Name");
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    public void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}
мне требуется сделать рефлексию и переименовать Name в UserName , не проблема , студия это легко позволяет сделать, но!
NotifyPropertyChanged("Name");
не заменится автоматически на
NotifyPropertyChanged("UserName");
собственно вопрос , можно ли вытянуть из любого объекта c# его наименование в коде чтобы к примеру писать не
NotifyPropertyChanged("Name");
а
NotifyPropertyChanged(Name.NameInSharpCode);
за ранее огромное спасибо.

Решение задачи: «C# рефлексия»

textual
Листинг программы
class User : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    private string _Name;
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Name)));
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы