3

Entity Framework と LINQ を使用して JSON データを返す VB.net Web サービスを多数作成しています。多くの場合、簡単に言うと、Using ステートメント内からデータを直接返すだけです。

疑問に思わずにはいられませんが、戻り値を保存して Using ステートメントの外に返すことに利点はありますか?

Usingに関するMSDN ドキュメントには、次のように記載されています。

" Using ブロックは、ブロックを終了する方法に関係なく、リソースの破棄を保証します。"

したがって、これはまったく問題ないと思いますが、潜在的な問題を見逃さないようにしたいだけです。

サンプルコード:

<WebMethod(), ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Function GetListOfRows()
    Try
        Using CTX As New [EFContext]
            Return (
                From R In CTX.[Rows]
                ).ToList()
        End Using
    Catch Ex As Exception
        'Capture & Report Error
    End Try
End Function
4

2 に答える 2

1

using ステートメント内での戻りは許容されると思います。using は try-catch-finally であり、using でコードを実行した後、finally のように dispose メソッドを呼び出すことに注意してください。これはあなたのコードと同じです:

Try
    Return (From R In CTX.[Rows]).ToList
Catch Ex As Exception
    'Capture & Report Error
Finally
    'dispose
End Try
于 2013-10-24T15:27:14.867 に答える
0

戻り値を格納し、それを Using ステートメントの外で返すことに利点はありますか?

いいえ、ないと思います。

ただし、例外ブロックにコードを追加することには大きな利点があります-例外を使用して何かを行うと、既知の問題になります...

于 2013-10-24T15:22:46.997 に答える