静态类概述

Ari*_*ian 0 .net c# asp.net oop c#-4.0

我读了一些关于静态类的文章,但我有一些问题:

  1. 将静态类放在内存中的位置?

  2. 根据C#静态方法:means that you want the declaration to refer to a single location如果我在Asp.Net中使用静态类,是否意味着我有一个在所有请求之间共享的位置?

  3. 我在文章中读到静态类和静态方法比面向实例的类更快,所以为什么我没有在每个where中看到它们.我的意思是.Net中也存在一些静态类和方法.

Dor*_*rin 5

1.

当加载包含类的程序或命名空间时,.NET Framework公共语言运行库(CLR)会自动加载静态类.

所以这意味着静态类被加载到内存中.这意味着您不希望在进程启动时将所有类加载到内存中.

2. asp.net中的静态类保存在应用程序状态中,所以是的,您有一个在所有请求之间共享的位置.静态方法在asp.net中很有用,但前提是你不在方法中使用静态对象,因为你可能会遇到不同线程访问修改相同变量的问题.

3.如果你使用了很多静态类,它们将被加载到内存中,这不是你想要的东西.

有关更多信息,请参阅此链接: asp.net/C#中的静态变量

  • http://msdn.microsoft.com/en-us/library/79b3xss3(v=vs.80).aspx; 我从MSDN获取此信息.访问静态成员时会对其进行初始化,但在加载程序集时会初始化静态类. (2认同)