2010-11-26 14 views
1

以前はクラスとコンストラクタを記述していましたが、実際のクラス自体に格納されていたものとは異なるコンストラクタパラメータの変数に名前を付けました。私はこのことがあまり混乱させないと思っていましたが、最近はもっと混乱していると思います。クラスコンストラクタ内の変数の命名規則

私が今行っているのは、それらの名前を同じにして、Me.varnameで内部変数を参照しています。ここに私が始めたクラスがあります。私の命名規則は間違っていますか?

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 

ありがとうございました。

+0

あなたは常に変数の型の接頭辞を使用することができますが...サブ – N0Alias

+0

@DaMartyr、ああ私はそれをいつもやっていましたが、もはや.NETでは推奨されていないと言われました。そうじゃないの? – Brad

+0

一部の人々はそれが気に入らないため、必要ではありませんが、コードを読むときに便利です。なぜなら、SDKの上にマウスカーソルを置いたり、宣言した型を見つけるためにスクロールする必要がないからです。 – N0Alias

答えて

3

は、私は新しいバージョン(VS2013)を参照して上記Fredouの答えに、この

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

'_Offset'と' _LoopCount'変数にアクセスするのは、効率的ではないでしょうか?通常は、必要に応じてパブリック変数をプロパティに展開するだけです。これは間違った方法ですか? – Brad

+0

私の過去と現在の仕事で、彼らはいつも私に財産の使用を依頼しました。私にとって今はそれらを使うのがベストプラクティスです。 – Fredou

+0

同じです、これはまさに私たちがやる方法です。 –

0

アップデートを行うだろう:

は、あなただけのプロパティを定義する1行を記述する必要があります。例:

Public Property Name As String 

Visual Basicでは、_Offsetという(内部)プライベート変数が自動的に定義されます。したがって、明示的なGet-Setステートメントを書く必要もありません。だから、簡単な言葉では、上記の行は、以下のコードのすべて置き換え:新規(ByValのintOffset整数、整数としてByVal intLoopCountなど)

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