请问这种现象怎么解释,很不理解,有关static
在Asp.net中,如果在某个类(aspx.cs)中声明一个static string字段common,
A用户打开浏览器,将common设置为字符串a,
B用户打开浏览器,将common设置为字符串b,
此时,如果A页面不停的刷新,一会儿就可以看到common的值变为b
这里可以看出静态成员与实例成员的区别。
但是请看以下控制台的示例
C# code
class Program
{
static string msg = string.Empty;
static void Main(string[] args)
{
if (args.Length > 0)
{
while (true)
{
Console.WriteLine(msg);
Thread.Sleep(2000);
}
}
msg = Console.ReadLine();
Console.ReadLine();
}
}
如果编译后好,文件名叫console1.exe.
我现在运行该应用程序的两个实例。
第一次我直接双击console1.exe,在等待输入的地方输入a字符。然后msg=a
紧接着第二次(上个应用没有关闭),我复制console1.exe在硬盘上的完整路径。然后启动cmd命令,在编辑菜单中点粘贴,
即将完整的console1.exe的路径粘贴上来,后面加一个参数 -b,此时应该每隔二秒钟在控制台中显示a
但实际运行结果却依然显示是string.empty.
请问怎么解释这种实现。难道我对static的理解有错误?
------解决方案--------------------
static的有效区域在一个进程(Process)内。
------解决方案--------------------
------解决方案--------------------确切说是AppDomain的隔离性
------解决方案--------------------
------解决方案--------------------