试图在C#属性中实现附加范围

试图在C#属性中实现附加范围,c#,C#,我正在开发一个生成大量C#类的实用程序。大多数生成的类都很小,但有些类最多有50多个公共成员。我希望能够添加一个额外的范围级别,以减少混乱并使它们更智能化 例如,假设我生成了一个包含以下成员的类Foo: 苹果、香蕉、哈密瓜、狗、大象、狐狸、天竺葵、木槿、鸢尾。 当我键入new Foo().时,IntelliSense没有显示所有9个成员,而是希望能够将属性的范围限定为类别。例如,newfoo().Animals.将列出狗、大象和狐狸 我能想到的唯一方法是为每个类别创建一个内部类,并在父类上创建一

我正在开发一个生成大量C#类的实用程序。大多数生成的类都很小,但有些类最多有50多个公共成员。我希望能够添加一个额外的范围级别,以减少混乱并使它们更智能化

例如,假设我生成了一个包含以下成员的类Foo:
苹果、香蕉、哈密瓜、狗、大象、狐狸、天竺葵、木槿、鸢尾。
当我键入
new Foo().
时,IntelliSense没有显示所有9个成员,而是希望能够将属性的范围限定为类别。例如,
newfoo().Animals.
将列出狗、大象和狐狸

我能想到的唯一方法是为每个类别创建一个内部类,并在父类上创建一个属性,该属性返回子类的实例。这看起来不是很优雅,我不确定它是否是嵌套类的一个很好的用途

公共类作用域
{
公共水果属性水果{get;private set;}
公共动物财产动物{get;private set;}
公共花卉{获取;私人设置;}
公共范围()
{
水果=新的水果特性();
动物=新的动物属性();
花=新的花属性();
}
公营物业
{
公共字符串Apple{get{返回“Apple”;}
公共字符串Banana{get{返回“Banana”;}
公共字符串哈密瓜{get{返回“哈密瓜”;}
}
公共类动物财产
{
公共字符串Dog{get{返回“Dog”;}
公共字符串大象{get{返回“大象”;}
公共字符串Fox{get{return“Fox”;}
}
公营物业
{
公共字符串Geranium{get{返回“Geranium”;}
公共字符串Hibiscus{get{返回“Hibiscus”;}
公共字符串Iris{get{返回“Iris”;}
}
}

如果它们是实代码中的字符串,我建议您使用
enum
不幸的是,它们不是实代码中的简单字符串。主要是方法调用。你可以通过上面的代码实现你想要的。。。但你也可以让它们静止。这样您就不需要初始化
范围
类。