質問
私の現在のプロジェクトでは、誰もが変数とメソッドに名前を付けて、彼らが何をしているのかということです。これはコードをすばやく理解するのに適していますが、多くの長いバリブル名では、データセットをエンティティ/オブジェクトにコピーするときなど、いくつかの頭痛があります。したがって、コードを理解している間、読みやすさは依然として打撃を受けます。
veryLongVariableName.Id = datasetVeryLongVariableName.Id
veryLongVariablename.Something = datasetVeryLongVariableName.Something
etc.
キーワードを使用してVB.NETを使用すると役立ちます。
With veryLongVariableName
.Id = datasetVeryLongVariableName.Id
.Something = datasetVeryLongVariableName.Something
End With
さて、私の質問、使用する方法はありますか、それとも類似したものはありますが、同時にいくつかの変数についてはありますか?何かのようなもの:
With veryLongVariableName As a, datasetVeryLongVariableName as b
a.Id = b.Id
a.Something = b.Something
End With
私はすべて説明的な命名規則を求めていますが、彼らは物事を乱雑にする傾向があります。特にVBで!
解決
これらの割り当てセットを実行するコードが単一の論理アクションの一部である場合、それを独自のメソッド/関数呼び出しにリファクタリングできます。これは、使用法のある倍数に関する質問に特に答えませんが、Code Completeなどの人気のある本にある提案とともに、ラインの読みやすさを向上させます。
他のヒント
いいえ、これは不可能です。
With
単一のオブジェクトのみで動作します。見る MSDN.
しかし、あなたはできます、 ネスト With
ステートメント (ただし、これはコードを本当に読み取れないようにすることになる可能性があるため推奨されません)。
舞台裏、すべて With
キーワードは、指定したオブジェクトを参照する一時変数を宣言することです。その参照は、オブジェクト名を完全に資格のあるものとまったく同じILコードにコンパイルされるため、パフォーマンスペナルティはありません。あなたは簡単にこれを自分で行うことができます:
Dim a as MyClass = veryLongVariableName
Dim b as MyOtherClass = datasetVeryLongVariableName
a.Id = b.Id
a.Something = b.Something