我正在开发一个生成大量C#类的实用程序。大多数生成的类都很小,但有些类最多可以有50多个公共成员。我希望能够添加额外的范围,以减少混乱,并使它们更加智能化。
例如,假设我使用以下成员生成一个类Foo:
苹果,香蕉,哈密瓜,狗,大象,狐狸,天竺葵,芙蓉,鸢尾花
我输入new Foo().
时,我希望能够将属性范围限定为类别,而不是显示所有9个成员的IntelliSense。例如,new Foo().Animals.
会列出Dog,Elephant和Fox。
我能想到的唯一方法是为每个类创建一个内部类,并在父类上创建一个返回子类实例的属性。这似乎不是很优雅,我不确定它是否适用于嵌套类。
public class Scope
{
public FruitProperties Fruit { get; private set; }
public AnimalProperties Animals { get; private set; }
public FlowerProperties Flowers { get; private set; }
public Scope()
{
Fruit = new FruitProperties();
Animals = new AnimalProperties();
Flowers = new FlowerProperties();
}
public class FruitProperties
{
public string Apple { get { return "Apple"; } }
public string Banana { get { return "Banana"; } }
public string Cantaloupe { get { return "Cantaloupe"; } }
}
public class AnimalProperties
{
public string Dog { get { return "Dog"; } }
public string Elephant { get { return "Elephant"; } }
public string Fox { get { return "Fox"; } }
}
public class FlowerProperties
{
public string Geranium { get { return "Geranium"; } }
public string Hibiscus { get { return "Hibiscus"; } }
public string Iris { get { return "Iris"; } }
}
}