如果类中存在静态构造函数(第 10.11 节),则静态字段初始值设定项的执行在该静态构造函数即将执行前发生。否则,静态字段初始值设定项在第一次使用该类的静态字段之前先被执行,但实际执行时间依赖于具体的实现
http://msdn.microsoft.com/zh-cn/library/aa645758%28v=vs.71%29.aspx
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
http://msdn.microsoft.com/zh-cn/library/aa645758%28v=vs.71%29.aspx
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
所以说,对于同一个类形,每个appdomain都会有静态变量的副本,相互不会影响。
对于开放泛型类型来说,情况有不一样,假如说List<T>类型内部有一个静态变量,那么List<int> ,List<string>等等这些关闭的类型中都会有List<T>中所声明的静态变量的副本。他们之间保持独立。所以在泛型类型定义中定义静态变量来使所有关闭的泛型类型共享同一个对象是错误的。
当在静态变量上应用了ThreadStatic特性而且又同时存在多一个Appdomain的时候,事情又更复杂了。
另外,对于mscorlib中定义的类型,在不同的appdomain中是共享的。这么做是为了提高性能。比如说typeof(int),在不同的appdomain中创建不同的int类型的runtimetype对象除了浪费内存没什么好处。所以typeof(int)返回的类型对象存在于共享appdoman中。
以上只是我的理解,不保证正确性。