类变量C#

类变量C#,c#,.net,C#,.net,假设我有3个班,即:1班、2班和3班。 Class3有一个变量var3 有没有可能var3(来自Class3)只能由Class1访问,而不能由Class2或任何其他类访问?如果您将var3设置为Class3保护,并使Class1从Class3继承,它将起作用 编辑,当其为属性时 例如: 将Class1和Class3放在同一个组件中,并使Class3内部。然后,它将仅对同一程序集中的其他类可见。除了上述选项之外,还有另一个选项: public class Class3 { private

假设我有3个班,即:1班、2班和3班。 Class3有一个变量
var3


有没有可能
var3
(来自Class3)只能由Class1访问,而不能由Class2或任何其他类访问?

如果您将var3设置为Class3保护,并使Class1从Class3继承,它将起作用

编辑,当其为属性时

例如:


Class1
Class3
放在同一个组件中,并使
Class3
内部。然后,它将仅对同一程序集中的其他类可见。

除了上述选项之外,还有另一个选项:

public class Class3
{
    private int var3;

    public class Class1
    {
        public void ShowVar3(Class3 instance)
        {
            Console.WriteLine(instance.var3);
        }
    }
}

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

@yonan2236:对,尽管同样的原则也适用。这可能是OP问题的正确答案,+1。但是也许OP应该重新考虑他们使用继承或接口的方法,而不是使用非OOP方式的“权限管理”。@Bazzz-我完全同意你的观点。OP的架构有点尴尬。
public class Class3
{
    private int var3;

    public class Class1
    {
        public void ShowVar3(Class3 instance)
        {
            Console.WriteLine(instance.var3);
        }
    }
}