类中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) 就可以操作相应的数据库操作。
同时注意,静态成员保存在内存中。如果定义的静态方法不是经常用,那样会比较浪费内存。
大概就是这样。