1、静态变量
public sealed class DbAccess
{
/// <summary>
/// 数据库连接字符串
/// </summary>
private static string _dbconnStr=string.Empty ;
public void DatabaseInint(string dbConnectStr)
{
_dbconnStr = dbConnectStr;
}
}
现在我分别实例化了两个变量:
hyMy.DbService.DbAccessClss.DbAccess myOleDB = new hyMy.DbService.DbAccessClss.DbAccess();
hyMy.DbService.DbAccessClss.DbAccess myMsSql = new hyMy.DbService.DbAccessClss.DbAccess();
1) myMsSql.DatabaseInint("Server=192.192.192.8; Database =eSCashSystem; Uid =sa;Pwd=Hy@ecSun.cn;");
2) myOleDB.DatabaseInint(@"Provider =Microsoft.Jet.OleDb.4.0;Data Source =D:/OABrid.mdb;");
当我执行了2)后,myOleDB 的变量_dbconnStr 被2)覆盖了
2、非静态变量
public sealed class DbAccess
{
/// <summary>
/// 数据库连接字符串
/// </summary>
private string _dbconnStr=string.Empty ;
public void DatabaseInint(string dbConnectStr)
{
_dbconnStr = dbConnectStr;
}
}
现在我分别实例化了两个变量:
hyMy.DbService.DbAccessClss.DbAccess myOleDB = new hyMy.DbService.DbAccessClss.DbAccess();
hyMy.DbService.DbAccessClss.DbAccess myMsSql = new hyMy.DbService.DbAccessClss.DbAccess();
1) myMsSql.DatabaseInint("Server=192.192.192.8; Database =eSCashSystem; Uid =sa;Pwd=Hy@ecSun.cn;");
2) myOleDB.DatabaseInint(@"Provider =Microsoft.Jet.OleDb.4.0;Data Source =D:/OABrid.mdb;");
不会覆盖
本文通过示例对比了静态变量与非静态变量在不同实例间的行为差异。具体展示了当两个对象实例化同一类并设置数据库连接字符串时,静态变量会共用同一份内存导致值被覆盖,而非静态变量则各自独立,互不影响。
2万+

被折叠的 条评论
为什么被折叠?



