[英]Passing data from one instance of a class to another instance of a class in C#
我正在尝试将数据从类的一个实例传递到另一个类的实例 - 即从另一个类调用属于一个类的方法(非静态)。
为了简单起见,我将在这里编写代码,但原理仍然是相同的。
我们的第一个类将被称为class1 ,我们的第二个类将被称为class2 。 Class1将尝试在class2中调用名为myMethod的方法,该方法接受参数:int i 。
这是代码:
namespace myNamespace
{
static void Main()
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
}
public class Class1
{
public Class1()
{
class2.myMethod(5);
}
}
public class Class2
{
private int myInt;
public myMethod(int i)
{
myInt = i;
}
}
}
现在我可以在代码中看到一些明显的问题。 首先,Class1没有Class2的实例将数据传递给......但是由于我的程序的性质,这必须是如何完成的。 (Class2运行一个循环,意味着没有代码可以运行 )
一个可能的解决方法是让myMethod保持静态但是然后存在将数据从静态方法传递到非静态变量的问题。
我不太熟悉接口,这可能是最好的解决方案吗? 我还以为我可能能够将class1中的数据写入文件,然后让class2读取并在循环期间从文件中删除数据......但这看起来有点单调乏味。
那么我应该如何传递数据/调用方法呢?
谢谢您的帮助。
您可以尝试更改您的Class1
构造函数,如下所示:
public Class1(Class2 c2)
{
c2.myMethod(5);
}
然后将Class2
实例传递给Class1
构造函数:
Class2 c2 = new Class2();
Class1 c1 = new Class1(c2);
我不太熟悉接口,这可能是最好的解决方案吗?
不,完全没有,接口在这里无关。
我还以为我可能能够将class1中的数据写入文件,然后让class2读取并在循环期间从文件中删除数据......但这看起来有点单调乏味。
嗯,不确定我理解。
那么我应该如何传递数据/调用方法呢?
在OOP中,您有两种方法可以调用方法:
我不确定我理解你的要求,但最简单的方法是将Class2
的实例传递给Class1
的构造函数:
public Class1(Class2 c2)
{
c2.myMethod(5);
}
然后你可以按如下方式调用你的课程:
Class2 c2 = new Class2();
Class1 c1 = new Class1(c2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.