如果嵌套类因任何原因需要进行分区,则所有者类也需要进行分区。嵌套类代码也是所有者类代码的一部分 - 它是一种组合关系。
因此,提取嵌套类的一部分也意味着同时提取其所有者的一部分。反过来,我们需要“查看每个部分类的完整路径”,以便编译器可以识别完全指定的类型。
命名空间也是如此 - 与类不同,它们隐式地是部分的,因为我们不希望在同一个文件中拥有整个命名空间,而对于类,特别是嵌套类,我们通常这样做。
因此,通常我们需要在具有嵌套类部分的文件中编写。
MyTopNamespace.MyLevel2Namespace.MyTopLevelClass.MyNestedClassA
MyTopNamespace.MyLevel2Namespace.MyTopLevelClass.MyNestedClassB
定义类似于:
namespace MyTopNamespace
{
namespace MyLevel2Namespace
{
partial class MyTopLevelClass
{
partial class MyNestedClassA
{
}
class MyOtherNestedClassNotPartitioned
{
...
}
partial class MyNestedClassB
{
}
}
}
}
另外一个文件中,嵌套类的另一部分被命名为'A':
namespace MyTopNamespace
{
namespace MyLevel2Namespace
{
partial class MyTopLevelClass
{
partial class MyNestedClassA
{
// 嵌套类定义的另一部分:
// MyTopNamespace.MyLevel2Namespace.MyTopLevelClass.MyNestedClassA
}
}
}
}
还有另一个文件,其中嵌套类的另一部分被命名为'B':
namespace MyTopNamespace
{
namespace MyLevel2Namespace
{
partial class MyTopLevelClass
{
partial class MyNestedClassB
{
// 嵌套类定义的另一部分:
// MyTopNamespace.MyLevel2Namespace.MyTopLevelClass.MyNestedClassB
}
}
}
}
或者我们可以在其他文件中定义两个嵌套类的不同部分等,但我们总是需要完全指定类类型的定义位置。