【发布时间】:2016-02-22 17:06:40
【问题描述】:
到处都需要一个包含实用方法的类。所以,我想让它成为一个静态类。
为什么 static 被转换为 NotInheritable?
public static class MyClass
{
public static string MyProperty { get; set; }
public static void MyMethod()
{
}
}
到
Public NotInheritable Class Employee
Private Sub New()
End Sub
Public Shared Property MyProperty() As String
Get
Return m_MyProperty
End Get
Set
m_MyProperty = Value
End Set
End Property
Private Shared m_MyProperty As String
Public Shared Sub MyMethod()
End Sub
End Class
在我看来,这看起来更像是一个密封类,不是吗?
【问题讨论】:
-
"NotInheritable" 相当于 c# 中的 "sealed"。 msdn.microsoft.com/en-us/library/h278d2d4.aspx。似乎“共享”相当于“静态”? stackoverflow.com/questions/1980207/…
-
静态意味着密封,这意味着你不能继承它们......也不能包含实例构造函数,而是静态的......
-
@Codexer,它有点复杂。在 C# 中,您可以从静态类继承,但它不是“正确的”继承,而是“伪造的”。 stackoverflow.com/questions/2281775/…
-
@Joshua 你是说微软错了吗? msdn.microsoft.com/en-us/library/79b3xss3.aspx
-
静态类是密封的,但密封类并不都是静态的。