これは、 Effective C#の本で見た例です。
private BindingList<PayrollData> data;
public IBindingList MyCollection
{
get { return data; }
}
public void UpdateData()
{
// Unreliable operation might fail:
var temp = UnreliableOperation();
// This operation will only happen if
// UnreliableOperation does not throw an
// exception.
data = temp;
}
著者は、これは参照型ではなく値型で機能すると述べています。彼の意味が理解できませんでした。
私は今理解していると思います:コレクションはrefタイプです。「データフィールド」の利用者は、ヒープ上の古いストレージへのコピーを保持していることを覚えていません。「データ」が値タイプの場合、コンシューマー(データを使用する他のコード)は、データのディープコピーを保持していることを思い出し、更新が必要になったときに再度要求します。
右 ?