1、static静态方法:为类所有,在类加载了,就可以通过类名直接访问,不依赖与任何对象。在静态方法中,不能访问非静态方法和变量。
举一反三:
class{
private string x;
Method A(){..}
static Method B(){
MethodA();//报错
..}
}
假如在静态方法中能够访问非静态方法。在main函数中,调用该静态方法class.methodB(),但Method A()为对象所有,此时对象都没有,哪来的Method A()。
2、为什么Main 函数是Static
如果不是static,那需要一个对象来访问main函数,但程序入口是Main,所以又会在Main中实例化对象,反反复复,死循环。
3、static代码块
主要用来优化代码性能,static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次