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; }
}