假设我在一台机器上运行两个.NET应用程序。两个应用程序都访问类中的静态属性。按顺序考虑以下情况:
FooClass.MyStaticString = "A";
应用程序B
FooClass.MyStaticString = "B";
应用程序A
Console.WriteLine(FooClass.MyStaticString);
结果是“A”还是“B”?我只是好奇 怎样 静态.NET静态实际上是。
它们仅限于特定的 AppDomain . 每个应用程序至少有自己的唯一AppDomain,因此静态属性/字段是 不 跨应用程序共享。结果就是“A”。类似地,如果在一个进程中启动多个AppDomain,静态属性/字段也不会在它们之间共享。