C# CallerMemberName特性
当你在一个方法运用了CallerMemberName特性,编译器会自动将调用该方法的方法或属性的名称作为该参数的默认值,可应用于MVVM框架。
代码:
using System.ComponentModel;
using System.Runtime.CompilerServices;public class Person : INotifyPropertyChanged
{private string name;public event PropertyChangedEventHandler PropertyChanged;// 使用 [CallerMemberName] 来避免硬编码属性名protected void OnPropertyChanged([CallerMemberName] string propertyName = null){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}public string Name{get => name;set{if (name != value){name = value;OnPropertyChanged(); // 不需要传递参数,[CallerMemberName] 自动提供}}}
}