类变量C#
假设我有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