知识大全 c#:static使用方法整理
Posted 变量
篇首语:所谓的成熟、其实就是在不断看开狠多事情之后、更好的生活着。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 c#:static使用方法整理相关的知识,希望对你有一定的参考价值。
要理解static 就必须要先理解另一个与之相对的关键字 很多人可能都还不知道有这个关键字 那就是auto 其实我们通常声明的不用static修饰的变量 都是auto的 因为它是默认的 就象short和long总是默认为int一样 我们通常声明一个变量 int a; string s; 其实就是 auto int a; auto string s; 而static变量的声明是 static int a; static string s; 这样似乎可以更有利于理解auto和static是一对成对的关键字吧 就像private protected public一样 对于static的不理解 其实就是对于auto的不理解 因为它是更一般的 有的东西你天天在用 但未必就代表你真正了解它 auto的含义是由程序自动控制变量的生存周期 通常指的就是变量在进入其作用域的时候被分配 离开其作用域的时候被释放 而static就是不auto 变量在程序初始化时被分配 直到程序退出前才被释放 也就是static是按照程序的生命周期来分配释放变量的 而不是变量自己的生命周期 所以 像这样的例子 void func() int a; static int b; 每一次调用该函数 变量a都是新的 因为它是在进入函数体的时候被分配 退出函数体的时候被释放 所以多个线程调用该函数 都会拥有各自独立的变量a 因为它总是要被重新分配的 而变量b不管你是否使用该函数 在程序初始化时就被分配的了 或者在第一次执行到它的声明的时候分配(不同的编译器可能不同) 所以多个线程调用该函数的时候 总是访问同一个变量b 这也是在多线程编程中必须注意的!
cha138/Article/program/net/201311/13632相关参考