c# – ‘密封类中的受保护成员’警告(单例类)

我已经实现了一个单例类,并且不断收到警告,我正在编写的方法一个’在密封类中声明的新受保护成员’.它不会影响构建,但我真的不想忽略警告,以防以后出现问题?我理解一个密封类是一个不能被继承的类 – 所以它的方法不能被覆盖,但我仍然不明白为什么下面的代码会给我警告(是因为使用了单例设计?):
namespace WPFSurfaceApp
{
public sealed class PresentationManager
{
    PresentationManager()
    {
    }

    protected void MethodName()
    {
    }

    public static PresentationManager Instance
    {
        get
        {
            return nested.instance;
        }
    }

    class nested
    {
        // Explicit static constructor to tell C# compiler
        // not to mark type as beforefieldinit
        static nested()
        {
        }

        internal static readonly PresentationManager instance = new PresentationManager();
    }
}

编辑:警告是关于MethodName()方法.
编辑:将public void MethodName()更改为protected void MethodName()

解决方法

警告是因为受保护在无法继承的类中没有意义.对于密封类,它在逻辑上与private完全相同.

这本身并不是一个错误,但是编译器试图引起你注意这样一个事实,即保护它而不是私有它将不会给你带来任何好处,也可能没有做你想要的事情(如果你打算让它可见子类,不能存在于密封类中).

所以,是的,您可以放心地忽略它,但在密封类中保护成员在逻辑上是不一致的.

MSDN输入Compiler Warning CS0628

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...