1 public static class StaticClass 2 { 3 public static void MyVoid() 4 { 5 //do something 6 } 7 } 8 9 public class NormalClass 10 { 11 public static void MyVoid() 12 { 13 //do something 14 } 15 }
StaticClass.MyVoid() 和NormalClass.MyVoid() 这两个方法的调用有区别吗?
纯从调用来讲,没什么区别。
那别的呢?
别的是相对它的母体来说的,也就是那两个类,静态的类只能有静态成员,不能实例。当然这都是理论上的说法,最主要的是,静态的东西内存在只存一份,调用速度会快,但相对费内存。
一个 是静态类 ,静态类中的 都是静态的,一个 是 非静态类的静态方法。
MSDN中对静态类的相关说明(http://msdn.microsoft.com/zh-cn/library/79b3xss3(v=vs.80).aspx):
- 仅包含静态成员。
- 不能使用 new 关键字创建静态类的实例。
- 静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。
调用肯定是一样的,并且看了下IL好像这两个方法得IL都一样的。
调用是一样的,不同的是类本身.