正如剛纔在question和answer中所述,您不能從靜態類繼承。如何執行與VB.NET中的靜態類一起使用的規則?由於框架在C#和VB之間是兼容的,因此可以有一種方法來標記靜態類,但似乎沒有辦法。在VB.NET中標記靜態類
63
A
回答
93
模塊==靜態類
如果你只是想,你不能繼承一個類,使用NotInheritable類。但它不會是靜態的/共享的。您可以將所有方法,屬性和成員標記爲Shared,但這與C#中的靜態類並不完全相同,因爲它不是由編譯器強制執行的。
如果你真的想要vb.net相當於一個C#靜態類,使用一個模塊。它不能被繼承,並且所有成員,屬性和方法都是靜態/共享的。
-1
我覺得VB.NET相當於static
是Shared
。
5
如果您只是想創建一個無法繼承的類,請在C#中使用Sealed,並在VB.Net中使用NotInheritable。
靜態的VB.Net等價物是共享的。
1
從CLR的角度來看,C#靜態類只是「密封」和「抽象」類。你不能創建一個實例,因爲它是抽象的,你不能從它繼承,因爲它是封閉的。剩下的只是一些編譯器魔術。
2
您可以在vb.net中創建靜態類。解決的辦法是
Friend NotInheritable Class DB
Public Shared AGE As Integer = 20
End Class
AGE變量是公共靜態,你可以用它在其他代碼就這樣
Dim myage As Integer = DB.AGE
朋友=公共,NotInheritable =靜態
30
幾乎沒有。你也必須防止實例化。
NotInheritable Class MyStaticClass
''' <summary>
''' Prevent instantiation.
''' </summary>
Private Sub New()
End Sub
Public Shared Function MyMethod() As String
End Sub
End Class
- 共享像靜態類的方法。
- 不可深入就像密封。
- 私有新建就像靜態類不能被實例化。
相關問題
- 1. 將BLL類標記爲靜態或?
- 2. 在C#中,標記靜態類的目的是什麼?
- 3. Doxygen不記錄靜態類?
- 4. VB.NET靜態類如何工作?
- 5. 靜態主類靜態類?
- 6. 靜態類中的靜態變量和非靜態類中的靜態變量
- 7. 如何在VB.NET中爲靜態類編寫方法擴展?
- 8. 如果只包含最終靜態字段,嵌套類應標記爲靜態?
- 9. 在靜態類
- 10. 在靜態類
- 11. 無法從C#類靜態類變量成VB.NET類
- 12. vb.net c#靜態事件?
- 13. 依賴注入靜態記錄,靜態輔助類
- 14. 在靜態類中的ASP.NET非靜態類Thread-Safety
- 15. 靜態類中的靜態屬性
- 16. 靜態與非靜態類
- 17. 常量不能標記靜態
- 18. java.io.IOException:標記/重置不支持(靜態)
- 19. C++靜態類型檢查(BOOST)由Eclipse CDT的錯誤標記
- 20. VB.NET中的靜態構造函數
- 21. 記憶化靜態Objective-C類
- 22. 靜態解析類型的記錄
- 23. 從靜態類觸發非靜態類?
- 24. 訪問非靜態類的靜態類
- 25. Combinig靜態類和非靜態類
- 26. 類const中的靜態類
- 27. 在TreeNode標記中使用字典 - VB.NET
- 28. VB.NET:在折線圖中標記點
- 29. 在Java中的非靜態類中聲明靜態變量
- 30. 如何在OpenLayers 3中創建靜態標記?
是一個模塊是一個靜態類。只要閱讀擴展方法,MS會告訴你同樣的事情。 – chrissie1 2008-09-25 21:19:13
有趣。我沒有在VB中使用擴展。 – MagicKat 2008-09-25 22:21:22
我收回了我以前的評論。我正在看一個反射器模塊,IL顯示它是密封的。 – MagicKat 2008-09-25 22:30:07