私人课程是否在编制时被封存?

M.A*_*nin 5 .net optimization cil compilation sealed

假设如下:我们有B类,它是嵌套在A类中的私有类.没有任何继承自B类的类.问题是:编译器会自动将B类标记为Sealed吗?(在VB中不可继承).编译器是否有任何理由不将B类标记为密封?

我的想法是这样的:因为B类嵌套在A类中并且是私有的,并且没有其他类继承自B类,所以密封它应该是安全的,因为它不能在A类之外继承(不是甚至通过A)的子类.

Class A
    Private Class B  
    End Class
End Class
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 7

编译器不会自动将此类型标记为已密封.

在这个非常具体的情况下,将课程作为未密封的课程没有实际价值.但是,确定您处于这种情况并不总是那么容易.你必须考虑以下几点

  • 类型是私人的
  • 必须考虑部分类的存在
  • 其他私有嵌套类型可以继承.

这些并非不可能计算,但它也不是微不足道的.要求用户自己密封类型要便宜得多