如何使用可访问性较差的参数派生公共泛型类,而不会出现不一致的可访问性错误

本文关键字:访问 不一致 错误 何使用 参数 派生 泛型类 | 更新日期: 2023-09-27 18:02:32

我有类ImplementationDetail,我想保持内部,例如:

internal class ImplementationDetail
{
}

我有GenericBaseClass私下使用它的参数,例如:

public class GenericBaseClass<T>
{
    private T useImplementationDetail;
}

并且,我有一个指定使用ImplementationDetailDerived类,例如:

public class DerivedClass: GenericBaseClass<ImplementationDetail>
{
}

这导致错误CS0060不一致的可访问性;这是因为ImplementationDetailinternal,而DerivedClasspublic。如何在保持ImplementationDetail internal的同时避免CS0060编译器错误?

如何使用可访问性较差的参数派生公共泛型类,而不会出现不一致的可访问性错误

不要使用内部类,而是使用接口。然后对您希望保持私有的方法使用显式实现。这样,它们就不会暴露。

这是不可能的。

必须使用公共接口或类。请看@DavidG, @Jonesopolis的评论