如何在C#中创建对象引用
本文关键字:创建 对象引用 | 更新日期: 2023-09-27 18:00:42
我最近开始创建自己的类,并决定创建一个简单的类,但遇到了一个问题。事情是这样的:
在我的表格1中,我有一个
SqlCeConnection sqlCEconn = new SqlCeConnection(@"Data Source = C:'Dropbox'Visual'Database test2 -treeview'Database test2 -treeview'Database2.sdf");
在我的新课程"测试"中,我有这个:
namespace Database_test2__treeview
{
class test
{
public string testCHECK()
{
SqlCeConnection sqlCEconn = new SqlCeConnection();
if (sqlCEconn.State == ConnectionState.Open)
{
return "Database connection: Open";
}
if (sqlCEconn.State == ConnectionState.Closed)
{
return "Database connection: Closed";
}
else
{
return "";
}
}
}
}
稍后在Form1中,我使用我的新类来检查连接是否打开,方法是:
private void Form1_Load(object sender, EventArgs e)
{
sqlCEconn.Open();
test testconnection = new test();
Toolstrip1.Text = testconnection.testCHECK();
很明显,返回字符串将是"Closed",因为test.cs中的SqlCeConnection没有链接到Form1 中的SqlCeConnection
我该如何以简单的方式做到这一点?
谢谢。
如果您想要引用,那么只需将其作为参数发送:
public string testCHECK(SqlCeConnection thisConnection)
{
if (thisConnection.State == ConnectionState.Open)
{
return "Database connection: Open";
}
if (thisConnection.State == ConnectionState.Closed)
{
return "Database connection: Closed";
}
else
{
return "";
}
}
您正在test
类中创建一个新的连接对象-如果您想检查现有连接的状态,您应该将其传递给test
类,甚至testCheck
方法:
class test
{
public string testCHECK(SqlCeConnection sqlCEconn)
{
if (sqlCEconn.State == ConnectionState.Open)
{
return "Database connection: Open";
}
if (sqlCEconn.State == ConnectionState.Closed)
{
return "Database connection: Closed";
}
else
{
return "";
}
}
}
这样称呼它:
sqlCEconn.Open();
test testconnection = new test();
Toolstrip1.Text = testconnection.testCHECK(sqlCEconn);
您应该创建一个名为SqlManager
之类的类,并从那里管理针对数据库的连接和操作。
这将允许多个不相关的类使用完全相同的连接对象。
在您的检查中,您创建了新的连接,同时它应该作为参数跟随在您的testCHECK中
public string testCHECK(SqlCeConnection sqlCEconn)
和你的电话
Toolstrip1.Text = testconnection.testCHECK(sqlCEconn)
我认为您希望在测试构造函数上打开连接。另一种选择是将在Form1_Load上创建的sqlCEconn作为参数传递给测试对象