74

Request["key"]Request.Params["key"]Request.QueryString["key"]

経験豊富なプログラマーはどの方法を使用しますか? なぜ?

4

5 に答える 5

122

私はお勧めしRequest.QueryString["key"]ます。クエリ文字列の場合は大きな違いはありませんRequest["Key"]が、から値を取得しようとしている場合は大きな違いがありますServerVariables。null の場合、、 then 、および finallyを参照Request["Key"]して値を検索します。QueryStringFormCookieServerVariables

使用Paramsするのが最もコストがかかります。params への最初のリクエストにより、新しい が作成され、 、、およびがそれぞれこのコレクションNameValueCollectionに追加されます。2 番目のリクエストでは、 よりもパフォーマンスが高くなります。QueryStringFormCookieServerVariablesRequest["Key"]

いくつかのキーのパフォーマンスの違いはかなり無視できると言われています. ここで重要なのは、コードが意図を示す必要があり、使用Request.QueryStringすると意図が明確になることです。

于 2010-02-22T18:06:54.407 に答える
24

Request.QueryString["key"]コードリーダーがどこからデータを取得しているかを正確に知るのに役立つため、私は使用することを好みます。Request.Params["key"]Cookie、クエリ文字列、およびその他のいくつかのものを参照できるため、使用しない傾向があります。そのため、ユーザーは少し考える必要があります。あなたが考えていることを誰かが理解するのに必要な時間が短いほど、コードの保守が容易になります。

于 2010-02-22T17:53:30.150 に答える
7

HttpRequest.ParamsまたはRequest.Paramshttprequestからほぼすべて(クエリ文字列、フォーム、Cookie、およびセッション変数)を取得しRequest.Querystringますが、クエリ文字列のみをプルします...すべてはその時点で何をしているかによって異なります。

于 2010-02-22T17:54:23.437 に答える
5

コレクションは常に明示的に指定します。なんらかの理由で上書きを許可したい場合は、それぞれに「get」をコーディングし、どちらかを選択するための階層を示す明確なコードを記述します。IMO、明確なビジネス上の理由なしに複数のソースから値を取得するのは嫌いです。

于 2010-02-22T17:52:39.293 に答える