一个符号出现,那就说明有这种需求,我从应用上来讲吧,比如你想要建一个类的唯一的对象,一般来说这个类都直接就可以new,你不能控制,但是你用静态的类对象加私有的构造方法就可以很好的解决这个问题。
再比如有一个变量很多地方都需要引用,你不可能每个对方都去new一个类来调用这个对象吧,这个时候你只需要
一个类名加静态的变量名就可以轻松的获取到,而且这个在内存里面只是保存了一份,比较起来是少占资源的。
http://zhidao.baidu.com/question/522101407?&oldq=1
另外,static修饰符在C#中的一个重要的作用就是
当该修饰符修饰一个类的时候,可以在这个类中定义扩展方法,所谓的扩展方法就是例如.NET本身自定义了string类,如果你想再给这个类加上一个别的方法,比方说:Foo()方法,那么就可以用扩展方法的形式对其扩展,但是前提必须是这个扩展方法要写在静态类中,定义格式为:
public static T Foo(this string s);T可以是任何类型,你也可以使这个方法具有参数
public static T Foo(this string s,T t1);
这就是static在C#中的另一个用法
定义静态全局变量 public static string str="abc";
在页面添加一个Button,button_click()
{
str="cba";
}
点Button后str的值变成了cba;
此时刷新页面,str的值依旧是cba,这就是静态变量的作用.
如果不是静态变量,刷新后,str的值就被初始为abc
static。平常用的时候。比如你在一个类里面
class A{
static int number;
}
你用这个number的时候A.number;
如果不用
calss A{
int number;
}
A a=new A();
a.number;
static类型变量只能static类型方法能调用
用处嘛。我就想一个。比如你创建了几个实例,需要一个状态来控制,那么用static变量就很方便。如果不用。那么就麻烦点
水平不高。平时自己用的时候方便点,没多很深的理解
static修饰符代表这个方法不适用this参数
木有static的方法 void f() 编译后会被隐式推导为 void f(Class this)
而有static的方法 static void f() 编译后会被隐式推导为 void f()
就是有没有this的区别。