分组属性C#

时间:2015-08-26 12:09:46

标签: c#

任何人都可以告诉我是否有可能发生属性?

这是我的意思的一个例子:

public class A
{
    public string test { get; set; }

    public group folder
    {
        public string test2 { get; set; }
    }
}

A a = new A();
a.test = "";
a.folder.test2 = "";

我希望你理解我的意思。

我知道我可以创建一个类并在A类中放置它的实例但在这种情况下我不想要2个类我想要1个属性类和#34;子文件夹"。

有什么办法吗?

THX

2 个答案:

答案 0 :(得分:0)

你想要的是使用嵌套类

public class A
{
    public string test { get; set; }
    public YourGroup folder;

    public A()
    {
        folder = new YourGroup();
    }

    class YourGroup
    {
        public string test2 {get; set; }
    }

}

A a = new A();
a.test = "";
a.folder.test2 = "";

然而,它并不像你说的那样真实,它只是另一个班级的一个班级。您的嵌套类仅在她声明的类中可见。

但它不是一个真正的解决方案,我认为如果你必须对属性进行分组,也许你必须创建一个新类(嵌套或不根据你的需要)。

编辑:

此外,你应该实现财产" YourGroup"在父类构造函数中。

答案 1 :(得分:0)

可能的(内部类实现)仿真:

public class A {
  public class YourGroup {
    // let inner class be creatable by A only
    internal YourGroup() {}

    public string test2 {get; set; }
  }

  // you have create the group (i.e. class)
  private YourGroup m_Group = new YourGroup();

  public string test { get; set; }

  public YourGroup folder {
    get {
      return m_Group; 
    }
  }
}

A a = new A();
a.test = "";
a.folder.test2 = "";