密封类 - 为什么要删除公共构造函数?

Ran*_*der 5 c#

我有一个班级,其存根如下所示.如果我不删除公共构造函数,代码分析会抱怨.但我很好奇为什么在密封课上这是必要的?下面显示的特定类仅包含静态方法.为什么包含私有构造函数只是为了删除公共构造函数是一种好习惯?

    public sealed class ParseFile
    {
        /// <summary>
        /// Remove the public constructor to satisfy CA1053.
        /// </summary>
        private ParseFile()
        {
        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 14

如果只有静态方法,则将其声明为静态类,并且不再担心构造函数.

public static class ParseFile 
{ 
} 
Run Code Online (Sandbox Code Playgroud)


Jef*_*nal 11

您没有收到此警告,因为该类已被密封,但因为它(实际上)是一个静态类.

公共构造函数意味着该类具有实例方法 - 不应该以其他方式通告的类.


ant*_*res 6

如果您的类只有共享方法,为什么还需要创建它的实例?

System.Math类是仅具有共享方法的类的示例.它有一个私有构造函数,因为它没有任何好处(并且没有任何意义)它可以创建.

编辑:来源http://social.msdn.microsoft.com/Forums/en-US/vstscode/thread/8addbc70-f720-4d0b-85ce-2bdf52e32f77

问题是我为什么要私有化,但为什么要保持公开.始终授予所需的最低访问权限.