当前位置: 代码迷 >> ASP.NET >> 类中static方法, 除了不用 new 之外还有什么好处?有什么蔽端? 什么情况下使用? 困惑!该怎么解决
  详细解决方案

类中static方法, 除了不用 new 之外还有什么好处?有什么蔽端? 什么情况下使用? 困惑!该怎么解决

热度:8509   发布时间:2013-02-26 00:00:00.0
类中static方法, 除了不用 new 之外还有什么好处?有什么蔽端? 什么情况下使用? 困惑!
还有一个就是,为什么不都改成static?   那样省的实例话了
困惑,帮忙

------解决方案--------------------------------------------------------
在整个应用程序生命周期都存在.
------解决方案--------------------------------------------------------
常用的方法可以修饰为static 但是不宜过多,固定占内存的了。节约资源,通常很多方法都是用来扩展的,用也就用那么一到两次么,呵呵。
------解决方案--------------------------------------------------------
如果你对类的理解仅仅局限于方法的集合上,那么非静态的方法是没有什么意义,
------解决方案--------------------------------------------------------
静态方法,属于类,不属于实例。用户可以直接以 class.method() 的形式调用而不必生成实例。通常在应用程序中,用静态成员来保存经常要用到的方法,属性等。
比方说:用一个静态字段来保存数据库连接字符串,以后要用连接字符串,直接用class.property 的形式来获取;
再比如:我要执行数据库SQL操作,如果每次执行都要创建连接对象,Command对象,然后执行操作,这样很麻烦。现在可以这样定义一个静态方法:
public class A
{
public int ExecuteNonQuery(string strSql)
{
int result;

string strConnectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=...... "; //连接字符串
OleDbConnection conn = new OleDbConnection(strConnectionString);
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = strSql;
result = cmd.ExecuteNonQuery();
conn.Close();

return result;
}
}

以后只要直接调用 A.ExecuteNonQuery(strSql) 就可以操作相应的数据库操作。

同时注意,静态成员保存在内存中。如果定义的静态方法不是经常用,那样会比较浪费内存。
大概就是这样。
  相关解决方案