如何导出嵌套在部分 class 中的 class?

How can I derive a class nested inside a partial class?

如果我有一个抽象 class 嵌套在部分容器中 class 嵌套在另一个 class 中,我如何从基础 [=18] 派生 classes =]?我认为以下内容可行,但它表示由于保护级别而无法访问 BaseClass。不过,我需要派生的 classes 是私有的。

在有人告诉我这是多么糟糕的结构之前,

    class SingletonClass
    {
        public static partial class ContainerClass
        {
            abstract class BaseClass
            {

            }
        }
    }

    static partial class ContainerClass
    {
        class DerivedClass : BaseClass
        {

        }
    }

您的代码无法编译,因为有两种不同的 ContainerClass 类型。一个是 "normal" class,另一个嵌套在 SingletonClass 中。如果不涉及名称空间,那么第一个的全名是 SingletonClass.ContainerClass,而第二个的全名是 ContainerClass(即两种不同的类型)。

要做你想做的事,你还需要 SingletonClass 部分:

partial class SingletonClass
{
    public static partial class ContainerClass
    {
        abstract class BaseClass
        {

        }
    }
}

partial class SingletonClass
{
    public static partial class ContainerClass
    {
        class DerivedClass : BaseClass
        {

        }
    }
}