日期:2014-05-18  浏览次数:20924 次

C#中静态方法和静态变量
以前就听很多程序员说在程序中发尽量不用使用静态变量和静态方法,因为静态方法和静态变量会产生很多不正确的数据,一直没理解这句话的意思,在网上看到静态变量是共享的,但是也有很多人建议使用静态方法,不知道该什么下情况使用静态方法和变量,什么情况下不使用,请对这方面有了解的程序员给于解答,比如我写了段操作数据库的静态方法:
 public static void ExecuteNonQuery(string SqlString)
  {
  SqlCommand cmd = CreateCommand(SqlString);
  cmd.ExecuteNonQuery();
  Close();//关闭数据库连接
  }
请大家说说这样写的有什么问题

------解决方案--------------------
静态变量(static)是相对自动变量(auto)等而言的,一旦声明为静态变量,在编译时刻开始永远存在,不受作用域范围约束。 如果多人同时访问 就会共享这个静态变量
------解决方案--------------------
类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。所以建议尽量少用静态变量。尽量在静态方法中使用内部变量。
静态方法可在 访问这个方法时不需要实例化对象的情况下使用
------解决方案--------------------
静态成员是类级别的,会出现上边那些情况...
一些共享数据就有可能“脏数据”