包含實用方法的類在整個地方都是需要的。所以,我想讓它成爲一個靜態類。C#的靜態與VB.NET中的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」等價。 https://msdn.microsoft.com/en-us/library/h278d2d4.aspx。看起來「共享」等同於「靜態」? http://stackoverflow.com/questions/1980207/static-shared-in-vb-net-and-c-sharp-visibility – AndyJ
靜態意味着密封,這意味着你不能繼承他們....也不能包含一個實例構造函數,但是是一個靜態的... – Codexer
@Codexer,它有點複雜。在C#中,你可以繼承一個靜態類,但它不是「正確的」繼承,它是「假的」。 http://stackoverflow.com/questions/2281775/c-sharp-static-member-inheritance-why-does-this-exist-at-all – AndyJ