Base
public class Base<T> : Singleton<T> where T : new()
{
protected static object Object { set; get; }
static Base()
{
Object = new object();
}
}
Child1 和Child2
public class Child1 : Base<Child1>
{
}
public class Child2 : Base<Child2>
{
}
我以为 Base的静态构造函数只会执行一次. 可是当我在程序里使用 Child1.Instance 和 Child2.Instance 时发现, Base的静态构造函数被执行了2次. 那么Child1.Instance的Object和Child2.Instance的Object对象一定不是同一个.
那么问题出现在什么地方了呢? 答案其实挺简单的:系统认为 Base<Child1>










