项目中有些对象经常需要重置部分或全部属性到初始状态,想给这些类全部都加上个Reset()方法,又显得太冗余。Q.yuhen的这个Post中提出一种思路,使用默认构造函数来重置状态,这样实现:
| class MyClass |
| { |
| public int X { get; set; } |
| public string S { get; set; } |
| public MyClass() |
| { |
| X = 1234; |
| S = "abc"; |
| } |
| public void Reset() |
| { |
| var ctor = this.GetType().GetConstructor(BindingFlags.Instance | BindingFlags.Public, |
| null, new Type[0], null); |
| ctor.Invoke(this, null); |
| } |
| } |