9

usingC# と VB の両方でこのステートメントを使用しました。using ステートメントのネストに関するすべての批評家に同意します (C# はよくできているようですが、VB はそれほどではありません)。

そのことを念頭に置いて、同じブロック内で複数のシステム リソースを「使用」することで、VB の using ステートメントを改善することに関心がありました。

例:

Using objBitmap As New Bitmap(100,100)
    Using objGraphics as Graphics = Graphics.From(objBitmap)
    End Using
End Using

次のように記述できます。

Using objBitmap As New Bitmap(100,100), objGraphics as Gaphics = Graphics.FromImage(objbitmap)
End Using

だから私の質問は、より良い方法は何ですか?

私の直感は、リソースが関連/依存している場合、using ステートメントで複数のリソースを使用することは論理的であることを示しています。

4

2 に答える 2

14

私の主な言語は C# です。ほとんどの人は、同じスコープ内に多数の使用がある場合、「スタックされた」使用を好みます。

using (X)
using (Y)
using (Z)
{
    // ...
}

VB.NET が持つ単一の using ステートメントの問題は、それが雑然としているように見え、画面の端から落ちてしまう可能性があることです。したがって、少なくともその観点からは、複数の使用は VB.NET の方が優れているように見えます。

2 番目の構文を行の継続と組み合わせると、見栄えがよくなります。

Using objBitmap As New Bitmap(100,100), _
      objGraphics as Graphics = Graphics.FromImage(objbitmap)
    ' ...
End Using

これにより、読みやすさが向上すると私が考えるものに近づきます。

于 2009-09-03T15:43:05.010 に答える
0

どちらも同じです。IL レベルでは同一であるため、最も読みやすいと思われる方を選択する必要があります。

個人的には、次の構文を許可することで C# がこれを処理する方法が気に入っています。

using (Foo foo = new Foo())
using (Bar bar = new Bar())
{
    // ....
}

Usingただし、このフォーム (2 番目の例) に相当する VB.NETは、最初の例のネストされたステートメントよりも読みにくいことがわかります。しかし、これは私の意見です。問題のコードの可読性に最も適したスタイルを選択してください。出力が同一であることを考えると、それが最も重要なことです。

于 2009-09-03T15:36:22.697 に答える