[英]non-static variable in another class
如何在另一個類中使用非靜態變量? 這是我的問題:
public class class1
{
int a;
public int alpha{ get { return a; } }
public void Method1()//method gets called...
{
a++;
}
public class class2
{
// Here initializing class2 variable as class1 property value.
int b=alpha;
}
}
然后Visual Studio提出:需要一個對象引用....
我一定是非常愚蠢的,因為我在互聯網上看到了很多這樣的例子,但是我沒有把它弄好,所以如果有人幫助我,我會感激不盡。
您需要訪問該其他類的對象 - 換句話說'引用'(在您的示例中為class1)
var c1 = new class1();
然后你可以訪問它的成員
var alpha = c1.alpha;
根據您的項目,您可以在class2中實例化它或將其作為參數傳遞給class2構造函數。
你在這里做的可能適用於JAVA。
為了使用非靜態字段(事實上,使用非靜態的任何東西),您需要擁有要從中訪問非靜態成員的對象的實例。
在這種情況下,嵌套類class2
需要引用其外部類。 這可以在構造函數中傳遞,也可以在方法調用中傳遞。
例如,以下是使其工作的一種方法:
public class class1
{
int a;
public int alpha{ get { return a; } }
public void Method1()
{
a++;
class2 c2 = new class2(this);
Console.WriteLine("{0}", c2.b);
}
public class class2
{
public int b;
public class2(class1 outer) {
b = outer.alpha;
}
}
}
在您的示例中,您需要實例化class1的實例以訪問class2中的變量。
它應該是這樣的
public class class1
{
int a;
public int alpha{ get { return a; } }
public void Method1()//method gets called...
{
a++;
}
}
public class class2
{
// Here initializing class2 variable as class1 property value.
class1 obj = new class1();
int b= obj.alpha;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.