【问题标题】:Class creation and manipulation类创建和操作
【发布时间】:2014-06-23 07:59:00
【问题描述】:
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; }
}

上面显示的是我的结构(我没有提到访问说明符) 我的问题是如何通过仅使用 MainClass 来静态使用 A 类和 B 类,这也需要是一个静态类。除了任何方式,开发人员都不应使用 A 类和 B 类。他/她必须使用 MainClass 来访问 A 类和 B 类。

【问题讨论】:

  • 你的问题是?

标签: c# class


【解决方案1】:

这是您寻求的答案: https://stackoverflow.com/a/1665586/1413476

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

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

【讨论】:

  • 它非常聪明,但只适用于嵌套类,而且扩展性相当复杂......
  • 但是 +1 记住了一个聪明的答案:-)
  • 感谢您的 +1,但如果不使用嵌套类,您无法确保无法从外部访问它们。
  • 一方面你是对的。另一方面,它的灵活性要低得多。这真的是一个设计选择......
【解决方案2】:

您的答案可能在这里: http://en.wikipedia.org/wiki/Software_design_pattern#Classification_and_list

我只想:

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

我不认为你可以在 C# 中做得更好,因为你没有朋友课程。 此外,这很大程度上取决于你在做什么,但这可能不是最好的设计......

【讨论】:

  • 是的,它正在工作。但我担心的是“开发人员不应该以任何方式使用 A 类和 B 类。他/她必须使用 MainClass 来访问 A 类和 B 类。”
  • @Kamlesh Erez 建议完全阻止它,我建议阻止它从程序集(dll)之外......
猜你喜欢
  • 1970-01-01
  • 2013-07-09
  • 2023-03-23
  • 2012-10-07
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多