Marquage d’une classe statique dans VB.NET

Comme il vient d’être indiqué dans une question et une réponse récentes, vous ne pouvez pas hériter d’une classe statique. Comment peut-on appliquer les règles associées aux classes statiques dans VB.NET? Étant donné que le framework est compatible entre C # et VB, il serait logique qu’il y ait un moyen de marquer une classe statique, mais il ne semble pas y avoir de moyen.

Module == classe statique

Si vous voulez juste une classe dont vous ne pouvez pas hériter, utilisez une classe NotInheritable. Mais ce ne sera pas statique / partagé. Vous pouvez marquer toutes les méthodes, propriétés et membres en tant que Shared, mais ce n’est pas ssortingctement la même chose qu’une classe statique en C # car elle n’est pas appliquée par le compilateur.

Si vous voulez vraiment l’équivalent de vb.net à une classe statique C #, utilisez un module. Il ne peut pas être hérité et tous les membres, propriétés et méthodes sont statiques / partagés.

Presque là. Vous devez également empêcher l’instanciation.

NotInheritable Class MyStaticClass '''  ''' Prevent instantiation. '''  Private Sub New() End Sub Public Shared Function MyMethod() As Ssortingng End Sub End Class 
  • Shared est comme la méthode de la classe statique.
  • NotInheritable est comme scellé.
  • Privé New est comme la classe statique ne peut pas être instanciée.

Voir … MSDN – Classes statiques et membres de classe statique

Si vous voulez juste créer une classe dont vous ne pouvez pas hériter, en C #, vous pouvez utiliser Sealed et, dans VB.Net, utiliser NotInheritable.

L’équivalent VB.Net de statique est partagé.

Du sharepoint vue du CLR, la classe statique C # est simplement une classe “scellée” et “abstraite”. Vous ne pouvez pas créer une instance, car elle est abstraite, et vous ne pouvez pas en hériter car elle est scellée. Le rest n’est que de la magie du compilateur.

Vous pouvez créer une classe statique dans vb.net. La solution est

 Friend NotInheritable Class DB Public Shared AGE As Integer = 20 End Class 

La variable AGE est publique statique, vous pouvez l’utiliser dans un autre code comme celui-ci

  Dim myage As Integer = DB.AGE 

Friend = public, NotInheritable = statique