如何从一个方法初始化一个对象类中的另一种方法?(How to initialize an objec

2019-07-31 15:10发布

在一个类中,我有2种方法。 在方法1我创建了一个对象,但我不能在方法2使用相同的对象。

为什么? 请用一个简单的例子帮助。

编码是太大了,所以我给的布局

public class Sub
{
}

public class DataLoader
{
    public void process1()
    {
        Sub obj = new Sub();
    }

    public void process2()
    {
        // here I can't use the object
    }
}

Answer 1:

这是为什么不工作的原因是范围局部变量只能从它中声明的块进行访问。要从多个方法访问它,添加一个字段或将它传递给其他的方法作为参数

领域:

class YourClass
{
    object yourObject;

    void Method1()
    {
        yourObject = new object();
    }

    void Method2()
    {
        int x = yourObject.GetHashCode();
    }
}

参数:

class YourClass
{
    void Method1()
    {
        Method2(new object());
    }

    void Method2(object theObject)
    {
        int x = theObject.GetHashCode();
    }
}


Answer 2:

你应该在你的课堂上使用的成员变量。

public class DataLoader
{
    private Sub mySub;

    public void Process1()
    {
        mySub = new Sub();
    }

    public void Process2()
    {
        if(mySub == null) 
            throw new InvalidOperationException("Called Process2 before Process1!");            

        // use mySub here
    }
}

阅读上不同的变量范围(具体而言,在这种情况下,实例变量)。 您也可以通过你的对象作为参数,如codesparkle中提到他们的答案 。



Answer 3:

答案很简单(没有看到您的代码)是在创建对象Method1没有任何知名度,或范围, Method2

目前已经在这里了,告诉你如何解决您的具体问题一些很好的答案。 但真正的答案是一般熟悉范围的概念。 这是规划的一个基本组成部分,学习更多关于它会帮助你吨。

有很多关于这个主题的好文章和视频。 这个视频是一个很好的开始。 祝好运!



Answer 4:

你必须设置对象类字段,那么你可以从你的类的每一个方法访问它。



文章来源: How to initialize an object from one method to another method within a class?
标签: c# class methods