知识大全 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

相关参考