c#
에서 inotifypropertychanged 구현을 단순화합니다. inotifyPropertyChanged
는 데이터 바인딩 및 속성 변경 알림에 필수적이지만 수동 구현은 번거 롭을 수 있습니다. {get; 세트; 알림;}
는 이상적이며 C#에 내장되지 않았습니다. 프로세스를 간소화하는 방법을 살펴 보겠습니다.
한 가지 방법은 일반적인 setfield
메소드를 가진 기본 클래스와 관련이 있습니다 :
public class Data : INotifyPropertyChanged
{
protected virtual void OnPropertyChanged(string propertyName);
protected bool SetField(ref T field, T value, string propertyName);
public string Name
{
get { return name; }
set { SetField(ref name, value, "Name"); }
}
// ... other properties
}
이것은 속성 선언 보일러 플레이트를 줄입니다. C# 5의 CallermemberName
속성은 이것을 더 단순화합니다 :
protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = null);
public string Name
{
get { return name; }
set { SetField(ref name, value); }
}
C# 6 이상은 더 간결한 코드에 대한 추가 개선을 제공합니다.
자동화 코드 생성
완전한 자동화의 경우 propertychanged.fody
와 같은 도구를 고려하십시오. 외부 의존성이 필요하지만 매뉴얼 PropertyChanged
이벤트가 완전히 제기됩니다. 이것은 대규모 프로젝트를위한 강력한 옵션입니다. 수동 최적화 (기본 클래스 사용)와 자동화 된 코드 생성 사이의 선택은 외부 종속성에 대한 프로젝트 크기와 선호도에 따라 다릅니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3