假设我在一台计算机上运行了两个.Net应用程序。两个应用程序都访问类中的静态属性。按顺序考虑以下场景:
<小时/> 申请A
FooClass.MyStaticString = "A";
申请B
FooClass.MyStaticString = "B";
申请A
Console.WriteLine(FooClass.MyStaticString);
结果是“A”还是“B”?我只是好奇如何静态.Net静态确实是。
答案 0 :(得分:4)
它们仅限于特定AppDomain。每个应用程序至少都有自己唯一的AppDomain,因此静态属性/字段在应用程序之间不共享。结果就是“A”。同样,如果您在一个进程中启动多个AppDomain,则不会在这些进程之间共享静态属性/字段。