C# 类的创建和操作

C# 类的创建和操作,c#,class,C#,Class,上面显示的是我的结构(我没有提到访问说明符) 我的问题是如何通过仅使用MainClass静态地使用类A和类B,MainClass也必须是静态类。除此之外,开发人员不应使用类A和类B。他/她必须使用MainClass访问类A和类B。这是您寻求的答案: Ray Burns回答,这是我见过的最有创意的代码之一 这将只允许包含类访问私有子类,不允许任何外部人员访问子类。您的答案可能是: 我只想: class MainClass { public A APro { get; s

上面显示的是我的结构(我没有提到访问说明符)
我的问题是如何通过仅使用MainClass静态地使用类A和类B,MainClass也必须是静态类。除此之外,开发人员不应使用类A和类B。他/她必须使用MainClass访问类A和类B。

这是您寻求的答案:

Ray Burns回答,这是我见过的最有创意的代码之一


这将只允许包含类访问私有子类,不允许任何外部人员访问子类。

您的答案可能是:

我只想:

class MainClass
    {
        public A APro { get; set; }
        public B BPro { get; set; }    
    }

class A
{
    public int ProA { get; set; }
}
class B
{
    public int ProB { get; set; }
}
我不认为你在C#中能做得更好,因为你没有朋友课程。
另外,这在很大程度上取决于您正在做什么,但这可能不是最好的设计…

您的问题是?它非常聪明,但只适用于嵌套类,并且使可扩展性非常复杂…但是+1记住了一个聪明的答案:-)谢谢,感谢+1,但如果不使用嵌套类,就无法确保不能从外部访问它们。另一方面,它的灵活性要小得多。这是一个设计选择真的…是的,它是工作。但我担心的是“除其他方式外,开发人员不应该使用类A和类B。他/她必须使用MainClass来访问类A和类B”。@Kamlesh Erez建议的方法完全阻止了它,我建议的方法是从程序集(dll)外部阻止它。。。
static class MainClass
{

    public static A APro { get; private set; }
    public static B BPro { get; private set; }    

    static MainClass()
    {
        A = new A();
        B = new B();
    }
}

class A
{
    internal A(){}
    public int ProA { get; set; }
}
class B
{
    internal B(){}
    public int ProB { get; set; }
}