类变量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); 
     } 
    } 
} 

哪个选项是正确的一个将取决于您的上下文。我认为无论你做什么,你几乎肯定不应该直接尝试访问另一个班级的变量 - 但所有这些也适用于成员,这更合适。

+0

也许我应该改变我的问题....它应该是一个属性而不是变量。 – yonan2236 2011-03-11 07:36:45

+0

@ yonan2236:对,虽然完全一样的原则将适用。 – 2011-03-11 07:41:21

+0

+1:我同意它不应该是一个变量。 – Divi 2011-03-11 07:42:17

如果您VAR3保护的CLASS3并class1的距离CLASS3继承它会工作

编辑,当它的属性

如:

public class Class3 
{ 
    protected int Var3 {get;set;} 
} 


public class Class2 
{ 
} 


public class Class1 : Class3 
{ 
    //access Var3 here 
} 

Class1Class3在同一个程序集中,并使内部成为Class3。然后它只对相同程序集内的其他类可见。

+1

这可能是OP的问题的正确答案,+1。但是OP或许应该使用继承或接口来重新考虑他们的方法,而不是使用非OOP方式的“权限管理”。 – Bazzz 2011-03-11 07:45:28

+0

@Bazzz - 我完全同意你在这里。在OP的架构中有一些尴尬的地方。 – 2011-03-11 07:47:46