在一个类中,我有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
}
}
这是为什么不工作的原因是范围 。 局部变量只能从它中声明的块进行访问。要从多个方法访问它,添加一个字段或将它传递给其他的方法作为参数 。
领域:
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();
}
}
你应该在你的课堂上使用的成员变量。
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中提到他们的答案 。
答案很简单(没有看到您的代码)是在创建对象Method1
没有任何知名度,或范围, Method2
。
目前已经在这里了,告诉你如何解决您的具体问题一些很好的答案。 但真正的答案是一般熟悉范围的概念。 这是规划的一个基本组成部分,学习更多关于它会帮助你吨。
有很多关于这个主题的好文章和视频。 这个视频是一个很好的开始。 祝好运!
你必须设置对象类字段,那么你可以从你的类的每一个方法访问它。
文章来源: How to initialize an object from one method to another method within a class?