1. 只读属性
class A{ int _p; public int p { get{ return _p; } } }
以上代码简化为:
class A{ public int p get; }
(内部使用 p 来读写字段)
2. 初始化值
class A{ int _value; public int value { get { if(_value == 0){ _value = loadValue(); } return _value; } } }
以上代码简化为:
class A{ public once int value = loadValue(); }
3. 子列表
class A{ public class IntCollection { A _owner; List<int> _items; public IntCollection(A owner){ _owner = owner; } public void add(int item){ _owner.onAddItem(iterm); _items.add(item); } } IntCollection _items; public A() { _items = new IntCollection(this); } public IntCollection items { get { return _items; } } protected virtual void onAddItem(Int item){ // 对子元素进行管理 } }
以上代码简化为:
class A{ public List<int> items { add { // 对子元素进行管理。使用 value 代表子元素 } } }