我最近一直在研究构造函数,我当前正试图将一个对象传递给另一个类文件,我这样做的方式是这样的:
class Program
{
static void Main(string[] args)
{
Class1 objPls = new Class1();
objPls.nameArray[0] = "jake";
objPls.nameArray[1] = "tom";
objPls.nameArray[2] = "mark";
objPls.nameArray[3] = "ryan";
Echodata form2 = new Echodata(objPls);
}
}
class Class1
{
public string[] nameArray = new string[3];
}
class Echodata
{
public Class1 newobject = new Class1();
public Echodata(Class1 temp)
{
this.newobject = temp;
}
// so now why cant i access newobject.namearray[0] for example?
}
问题是我无法访问对象进入数组..
有哪些传递对象的方法?我被告知这大致是一种方法,并且已经尝试了一段时间但无济于事。
答案 0 :(得分:1)
不确定你不能做什么。例如,使用此修改的代码可以工作,或者至少可以编译。
class echodata
{
public Class1 newobject = new Class1();
public echodata(Class1 temp)
{
this.newobject = temp;
}
// so now why cant i access newobject.namearray[0] for example?
// What kind of access do you want?
public void method1()
{
newobject.nameArray[0] = "Jerry";
}
}
答案 1 :(得分:0)
在尝试在数组的第四个索引上设置“ryan”字符串时,您的代码会抛出错误。您最初将数组设置为长度为3。
在EchoData类中,您可以访问nameArray对象而不会出现问题,但您必须在方法或构造函数中访问它。你不能在这些之外操纵它的内容。
请记住,在EchoData类中,您将看不到在Main方法中设置的值。
答案 2 :(得分:0)
很难说,因为您还没有包含完整的,可编辑的样本,而且您还没有确切地解释了什么"无法访问"意味着(你得到一个错误吗?它是什么?)
但是,我的猜测是您尝试根据代码从类级别访问传入的对象字段。
即,您正在尝试这样做:
class Echodata
{
public Class1 newobject; // you don't need to initialize this
public Echodata(Class1 temp)
{
this.newobject = temp;
}
newobject.newArray[0] = "Can't do this at the class level";
}
您只能从成员方法中访问nameArray。
class Echodata
{
public Class1 newobject; // you don't need to initialize this
public Echodata(Class1 temp)
{
this.newobject = temp;
}
public void DoSOmething() {
newobject.newArray[0] = "This works just fine";
}
}