假設我有3個類,即:Class1,Class2和class3。 Class3有一個變量var3
。類變量C#
是否有可能var3
(來自Class3)只能被Class1訪問,而不能被Class2或任何其他類訪問?
假設我有3個類,即:Class1,Class2和class3。 Class3有一個變量var3
。類變量C#
是否有可能var3
(來自Class3)只能被Class1訪問,而不能被Class2或任何其他類訪問?
提到的,除了那些另一種選擇:
public class Class3
{
private int var3;
public class Class1
{
public void ShowVar3(Class3 instance)
{
Console.WriteLine(instance.var3);
}
}
}
哪個選項是正確的一個將取決於您的上下文。我認爲無論你做什麼,你幾乎肯定不應該直接嘗試訪問另一個班級的變量 - 但所有這些也適用於成員,這更合適。
如果您VAR3保護的CLASS3並class1的距離CLASS3繼承它會工作
編輯,當它的屬性
如:
public class Class3
{
protected int Var3 {get;set;}
}
public class Class2
{
}
public class Class1 : Class3
{
//access Var3 here
}
把Class1
和Class3
在同一個程序集中,並使內部成爲Class3
。然後它只對相同程序集內的其他類可見。
這可能是OP的問題的正確答案,+1。但是OP或許應該使用繼承或接口來重新考慮他們的方法,而不是使用非OOP方式的「權限管理」。 – Bazzz 2011-03-11 07:45:28
@Bazzz - 我完全同意你在這裏。在OP的架構中有一些尷尬的地方。 – 2011-03-11 07:47:46
也許我應該改變我的問題....它應該是一個屬性而不是變量。 – yonan2236 2011-03-11 07:36:45
@ yonan2236:對,雖然完全一樣的原則將適用。 – 2011-03-11 07:41:21
+1:我同意它不應該是一個變量。 – Divi 2011-03-11 07:42:17