82 votes

Marquage d'une classe statique dans VB.NET

Comme il a été dit dans une récente question et réponse, vous ne pouvez pas hériter d'une classe statique. Comment faire respecter les règles qui vont de pair avec les classes statiques à l'intérieur VB.NET? Car le cadre est compatible avec C# et VB, il serait logique qu'il y aurait un moyen de marquer une classe statique, mais il ne semble pas y avoir un moyen.

117voto

Joel Coehoorn Points 190579

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 comme partagés, mais ce n'est pas strictement 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 vb.net d'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.

46voto

Gary Newsom Points 31

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

 NotInheritable Class MyStaticClass

    ''' <summary>
    ''' Prevent instantiation.
    ''' </summary>
    Private Sub New()

    End Sub

    Public Shared Function MyMethod() As String

    End Sub

End Class
 
  • Shared est comme une méthode de classe statique.
  • NotInheritable est comme scellé.
  • Private New est comme une classe statique ne peut pas être instanciée.

See ... MSDN - Classes statiques et membres de classes statiques

6voto

Charles Graham Points 8132

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

L'équivalent VB.Net de static est partagé.

3voto

MShevroja Points 32

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

0voto

hangy Points 7722

Je pense que l’équivalent VB.NET de static est Shared .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X