c# 如何从新的 class 使用先前创建的 class 实例
c# how to use a previously created instance of a class from a new class
我正在通过阅读教程和编写自己的程序来学习 C#,我将面临下一个场景,我将使用一个示例:
我在另一个文件中创建了一个 Class 并在 form1 中创建了一个实例来填充它的属性,即:
//Person.cs file
public Class Person
{
string name;
int age;
}
//Form1.cs file
... //I create the instance:
Person newPerson = new Person();
...
newPerson.name = textBox1.Text;
newPerson.age = textBox2.Text;
现在,我在一个单独的文件 (toSQL.cs) 中有第三个 Class,它有一个将值存储到 SQL 中的方法,但我知道的唯一方法使用 Person Class 的实例是通过创建一个新实例。
如何从 SQL Class 访问 Form1 中创建的 Person 对象的属性?
您可以在表单代码中创建第三个 class 的实例,前提是此 class 不是 static
。然后你可以调用任何你想要的方法。
我假设你有这样的配置:
// This should be the handler for the save button.
// A button, which when will be clicked a new Person should be inserted in
// the database.
private void Save_Click(object sender, EventArgs e)
{
// Here we create a new Person object.
Person person = new Person();
person.name = textBox1.Text;
person.age = textBox2.Text;
// Here we create an instance of the ToSQL class.
// This is the class, whose definition is in the toSQL.cs file
ToSQL toSql= new ToSQL();
// Here we call a method called SavePerson, which inserts a new
// Person in the database.
toSql.SavePerson(person);
}
您可以通过方法将 Person
的实例传递给 ToSQL
class。
例如..也许您的 Form1 文件中也有这个:
ToSQL _sql = new ToSQL();
..而你的 ToSQL
class 有这个方法:
public int SavePerson(Person p) {
/*
* "p" in this method refers to the instance of Person you
* passed in from Form1
*/
// This is where your SQL code goes ..
return sqlCommand.ExecuteNonQuery();
}
然后您可以将 Person
实例传递给此方法.. 如下所示:
int result = _toSql.SavePerson(newPerson);
我发现 Form1.cs 包含对 Person 的引用。并且您希望 ToSql.cs 也能够引用同一个人。
那么 ToSql.cs 和 Form1.cs 目前是如何连接的? Program.cs 会同时创建它们吗?
您可以在 Form1.cs 中声明一个 ToSql 实例吗?然后你可以在 Form1.cs 内将 Person 传递给 ToSql。
我正在通过阅读教程和编写自己的程序来学习 C#,我将面临下一个场景,我将使用一个示例: 我在另一个文件中创建了一个 Class 并在 form1 中创建了一个实例来填充它的属性,即:
//Person.cs file
public Class Person
{
string name;
int age;
}
//Form1.cs file
... //I create the instance:
Person newPerson = new Person();
...
newPerson.name = textBox1.Text;
newPerson.age = textBox2.Text;
现在,我在一个单独的文件 (toSQL.cs) 中有第三个 Class,它有一个将值存储到 SQL 中的方法,但我知道的唯一方法使用 Person Class 的实例是通过创建一个新实例。 如何从 SQL Class 访问 Form1 中创建的 Person 对象的属性?
您可以在表单代码中创建第三个 class 的实例,前提是此 class 不是 static
。然后你可以调用任何你想要的方法。
我假设你有这样的配置:
// This should be the handler for the save button.
// A button, which when will be clicked a new Person should be inserted in
// the database.
private void Save_Click(object sender, EventArgs e)
{
// Here we create a new Person object.
Person person = new Person();
person.name = textBox1.Text;
person.age = textBox2.Text;
// Here we create an instance of the ToSQL class.
// This is the class, whose definition is in the toSQL.cs file
ToSQL toSql= new ToSQL();
// Here we call a method called SavePerson, which inserts a new
// Person in the database.
toSql.SavePerson(person);
}
您可以通过方法将 Person
的实例传递给 ToSQL
class。
例如..也许您的 Form1 文件中也有这个:
ToSQL _sql = new ToSQL();
..而你的 ToSQL
class 有这个方法:
public int SavePerson(Person p) {
/*
* "p" in this method refers to the instance of Person you
* passed in from Form1
*/
// This is where your SQL code goes ..
return sqlCommand.ExecuteNonQuery();
}
然后您可以将 Person
实例传递给此方法.. 如下所示:
int result = _toSql.SavePerson(newPerson);
我发现 Form1.cs 包含对 Person 的引用。并且您希望 ToSql.cs 也能够引用同一个人。
那么 ToSql.cs 和 Form1.cs 目前是如何连接的? Program.cs 会同时创建它们吗?
您可以在 Form1.cs 中声明一个 ToSql 实例吗?然后你可以在 Form1.cs 内将 Person 传递给 ToSql。