2010-11-26 9 views
1

Autrefois, lorsque j'avais écrit des classes et des constructeurs, j'appelais les variables du paramètre constructeur quelque chose de différent de ce qui aurait été stocké dans la classe elle-même. J'avais l'habitude de penser que cela rendait les choses moins confuses, mais ces jours-ci, je pense que c'est en fait plus confus. Ce que je fais maintenant est de les nommer de la même manière, et de faire référence aux variables internes avec Me.varname. Voici une classe que je viens de commencer à construire. Ma convention de nommage est-elle incorrecte?Convention de dénomination pour les variables dans le constructeur de classe

Public Class BufferPosition 
    Public Offset As Integer 
    Public LoopCount As Integer 

    Public Sub New() 

    End Sub 

    Public Sub New(ByVal Offset As Integer, ByVal LoopCount As Integer) 
     Me.Offset = Offset 
     Me.LoopCount = LoopCount 

    End Sub 
End Class 

Nous vous remercions de votre temps.

+0

Vous pouvez toujours utiliser un préfixe de type de variable .. Sub New (ByVal intOffset en entier, ByVal intLoopCount as Integer) – N0Alias

+0

@DaMartyr, Ah , Je le faisais tout le temps, mais on m'a dit que ce n'est plus recommandé dans .NET. N'est-ce pas le cas? – Brad

+0

Certaines personnes ne l'aiment pas et ce n'est pas nécessaire, mais je trouve cela utile lors de la lecture de code parce que je n'ai pas besoin de survoler le SDK ou de faire défiler pour découvrir son type déclaré. – N0Alias

Répondre

3

je referais ce

Public Class BufferPosition 

Private _Offset As Integer 
Private _LoopCount As Integer 

Public Sub New() 

End Sub 

Public Sub New(ByVal Offset As Integer, ByVal LoopCount As Integer) 
    _Offset = Offset 
    _LoopCount = LoopCount 
End Sub 

Public Property Offset() As Integer 
    Get 
     Return _Offset 
    End Get 
    Set(ByVal value As Integer) 
     _Offset = value 
    End Set 
End Property 

Public Property LoopCount() As Integer 
    Get 
     Return _LoopCount 
    End Get 
    Set(ByVal value As Integer) 
     _LoopCount = value 
    End Set 
End Property 

End Class 
+0

Il semble accéder aux variables '_Offset' et' _LoopCount' serait moins efficace de cette façon? En règle générale, je ne développe les variables publiques dans les propriétés que si nécessaire. Est-ce la mauvaise façon de le faire? – Brad

+0

Dans mon travail passé et actuel, ils m'ont toujours demandé d'utiliser la propriété, alors pour moi c'est maintenant une bonne pratique pour les utiliser – Fredou

+0

Même ici, c'est exactement comment nous le faisons. –

0

Mise à jour sur la réponse de Fredou ci-dessus en se référant à la nouvelle version (VS2013):

Vous avez juste besoin d'écrire une ligne pour définir une propriété. Exemple:

Public Property Name As String 

Visual Basic définit automatiquement une variable privée (interne) appelée _Offset. Vous n'avez donc pas besoin d'écrire des instructions Get-Set explicites. Donc, en termes simples, la ligne ci-dessus remplace tout le code ci-dessous:

Public Property Name As String 
    Get 
     Return _Name 
    End Get 
    Set(ByVal value As String) 
     _Name= value 
    End Set 
End Property 
Private _Name As String 
Questions connexes