C#7の機能追加のお話です。
C#7ではプロパティのスコープ内のみで使用できる変数が定義できるようです。
これにより以下のように実装できるようになります。
■今までの実装
private string _myField;
public string MyProperty {
get { return _myField; }
set {
_myField = value;
NotifyOfPropertyChange(nameof(MyProperty));
}
}
■C#7での実装
public string MyProperty {
string myField;
get { return myField; }
set {
myField = value;
NotifyOfPropertyChange(nameof(MyProperty));
}
}
今まではクラス外からは_myFieldが隠蔽できていましたが、クラス内では自由にアクセスでき、隠蔽できてませんでした。
今回の機能追加により、プロパティのGetとSetからしかアクセスできない変数が定義できるようになり、完全な隠蔽ができるようになります。
VB6のころからこの機能が欲しいと思っていたので、とてもうれしいです。