変数の名前を関数の名前と同じにする必要がある場合の変数の命名規則には、どのようなものがありますか? VB.Netを使用しています。
いくつかの数学演算を実行するか、オブジェクトを生成する関数を作成するときに、私はこの問題によく遭遇します。戻り変数は関数内で宣言され、その変数の値は関数全体で設定されます。
例として:
Public Function Sum(arrayOfValues as double()) as double()
dim outputSum as double(arrayOfValues.GetUpperBound(0))
For i As Integer = 0 To arrayOfValues .GetUpperBound(0)
outputSum += v(i)
Next
Return outputSum
End Function
ここでは、outputSumを単に「sum」と呼ぶことはできません。 VB.Netは大文字と小文字を区別しないため、名前はメソッドの名前と競合します。
次に別の例を示します。
Public Function IsValid(data As List(Of MyObj)) As Boolean
Dim retVal As Boolean = True
For Each d As MyObj In data
If d.SomeProperty > 42 Then
retVal = False
End If
Next
Return retVal
End Function
わかりやすい名前を使用できますが、不要なノイズは追加されませんか?これまでは「出力」だけを使用しましたが、戻り値の型がプリミティブ型の場合は「retVal」を使用することもありました。
*多くのプログラマーがコンパイラーを回避するために任意の省略形( "MaximumValue"や "maxVal"など)を使用することも確認しました。これは私を狂わせます。
ほとんどの場合、変数result
を使用します。
あなたのソースコードの次の穏やかな読者の心に曖昧さを作らないでください。 (あなたにとってはあまりにも悪いので、あなたはパン屋のトラックに気を取られたので、彼女は明確にするように頼むことはできません。)「一目でわかる」ソースコードを書いてみてください。それを読むのは急いでいてプレッシャーがあります。彼らに親切にしてみてください...
VBは.NETファミリーの特別な子です。だから私は以前にこの痛みを感じました。
まず第一に、良い経験則は、動詞にちなんでメソッドに名前を付け、変数/オブジェクトに名詞にちなんで名前を付けることです。これにより、しばしば競合が解決されます。
ただし、そうでない場合は、メソッド内の結果オブジェクトにアンダースコアと小文字の組み合わせを使用します。
Public Function Sum(arrayOfValues As Double()) As Double()
Dim _sum As Double(arrayOfValues.GetUpperBound(0))
For i As Integer = 0 To arrayOfValues.GetUpperBound(0)
_sum += v(i)
Next
Return _sum
End Function
この2つの方法で賢く行くことができます。
1つは、「ret」や「out」などの一貫した接頭辞を使用することです。つまり、変数「out_sum」を呼び出します。この命名システムを出力パラメーターにも適用します。
もう1つは、問題の変数に別の名前を付けることです。たとえば、「アキュムレータ」または「cuml_sum」に短縮できます。これは、計算プロセスで使用される中間変数としての役割に適しています。
VB6とVBAで利用可能な3番目の代替案(これらの言語が実際に戻り値を割り当てる方法のため)ですが、VB.Netに引き継がれたかどうかを忘れてしまいました-関数名自体をアキュムレーター変数として使用することです。