0

私の現在のプロジェクトでは、誰もが変数とメソッドに名前を付け、その名前とその機能にちなんでいます。これはコードをすばやく理解するのに適していますが、データセットをエンティティ/オブジェクトにコピーするときなど、長い変数名がたくさんあると頭痛の種になります。したがって、コードを理解していても、読みやすさは依然として打撃を受けます。

veryLongVariableName.Id = datasetVeryLongVariableName.Id
veryLongVariablename.Something = datasetVeryLongVariableName.Something
etc.

VB.NET の With キーワードを使用すると役立ちます。

With veryLongVariableName

    .Id = datasetVeryLongVariableName.Id
    .Something = datasetVeryLongVariableName.Something

End With

さて、私の質問ですが、同時に複数の変数に対して With などを使用する方法はありますか? 何かのようなもの:

With veryLongVariableName As a, datasetVeryLongVariableName as b

    a.Id = b.Id
    a.Something = b.Something

End With

私はわかりやすい命名規則を支持していますが、それらは物事を混乱させる傾向があります。特にVBで!

4

3 に答える 3

4

いいえ、これは不可能です。

With単一のオブジェクトでのみ機能します。MSDNを参照してください。

ただし、ステートメントをネストWithすることはできます(ただし、コードが実際に読み取れなくなる可能性があるため、これはお勧めしません)。

于 2010-10-29T14:20:41.520 に答える
4

これらの一連の割り当てを行うコードが単一の論理アクションの一部である場合、それを独自のメソッド/関数呼び出しにリファクタリングできます。これは、倍数の使用法に関する質問に具体的に答えるものではありませんが、Code Complete などの人気のある本にある提案に沿って読みやすさを向上させます。

于 2010-10-29T14:22:00.227 に答える
2

舞台裏では、Withキーワードは指定したオブジェクトを参照する一時変数を宣言するだけです。その参照は、オブジェクト名を完全修飾したものとまったく同じ IL コードにコンパイルされるため、パフォーマンスが低下することはありません。これは自分で簡単に行うことができます:

Dim a as MyClass = veryLongVariableName
Dim b as MyOtherClass = datasetVeryLongVariableName

a.Id = b.Id
a.Something = b.Something
于 2010-10-29T14:34:26.030 に答える