将对象传递给另一个类?

时间:2015-04-06 03:11:07

标签: c# oop

我最近一直在研究构造函数,我当前正试图将一个对象传递给另一个类文件,我这样做的方式是这样的:

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?
}

问题是我无法访问对象进入数组..

有哪些传递对象的方法?我被告知这大致是一种方法,并且已经尝试了一段时间但无济于事。

3 个答案:

答案 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";
    }
}