IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.NET] Comment créer des invariants de classe ?


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut [VB.NET] Comment créer des invariants de classe ?
    Bonjour, voila je suis assez newb en VB.NET et je cherche à savoir si c'est possible de créer des objets invariants depuis la classe de cet objet.

    J'arrive très bien à faire des invariants de type Integer ou String, mais de ma classe non.

    Je sais qu'en C# c'est possible mais en VB.NET je n'y arrive pas.

    Voici l'exemple de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Public NotInheritable Class Level
     
        Public Const WARNING As Level = New Level(1, "WARNING")
     
     
        Dim _level As Integer
        Dim _levelName As String
     
        Sub New(ByVal level As Integer, ByVal levelName As String)
            _level = level
            _levelName = levelName
        End Sub
     
     
    End Class
    Premièrement je ne sais pas si je doit mettre NotInheritable dans la définition de ma classe.
    Et ensuite pour ma constante WARNING j'ai les erreurs suivantes: "Les constantes doivent être de type intrinsèque ou énuméré, pas de type classe, structure ou tableau" et "Une expression de constante est requise"

    Je sais qu'en C#c'est possible en faisant comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public readonly static Level WARNING = new Level(1, "WARNING");
    Merci d'avance

  2. #2
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut
    En fait en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public ReadOnly WARNING As Level = New Level(1, "WARNING")
    Ca marche ... mais je n'arrive pas à appeler Level.WARNING dans mes autres classes. (Contrairement à C# )

    Il faudrait que je puisse faire une constante (const) d'un objet Level ..

    Comment puis je faire ?

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 107
    Points : 60
    Points
    60
    Par défaut
    J'ai oublié le Shared

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Juste pour résumer tu pouvais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Public NotInheritable Class Level
        Private _level As Integer
        Private _levelName As String
     
        Public Sub New(ByVal level As Integer, ByVal levelName As String)
            _level = level
            _levelName = levelName
        End Sub
     
        Public Shared Readonly Property  Warning() As Level
           Get
             Return New Level(1, "WARNING")
           End Get
        End Property
    End Class
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public NotInheritable Class Level
         Public Shared Readonly Warning() As New Level(1, "WARNING")
     
        Public Sub New(ByVal level As Integer, ByVal levelName As String)
            _level = level
            _levelName = levelName
        End Sub
     
        Private _level As Integer
        Private _levelName As String
     
    End Class
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/04/2006, 15h53
  2. Réponses: 11
    Dernier message: 15/02/2006, 14h45
  3. Réponses: 14
    Dernier message: 07/03/2005, 10h04
  4. Réponses: 4
    Dernier message: 02/07/2004, 10h31
  5. [IDE][VS.NET] Comment sauvegarder l'état des 'Region' ?
    Par CkurcK dans le forum Contribuez
    Réponses: 2
    Dernier message: 23/02/2004, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo