3

ASP.NETの分離コードからフォームまたはクエリ文字列の値にアクセスする場合、次のように使用することの長所と短所は何ですか。

// short way
string p = Request["param"];

それ以外の:

// long way
string p = Request.QueryString["param"]; // if it's in the query string or
string p = Request.Form["param"];        // for posted form values

私はこれについて何度も考え、思いついた:

短い方法:

  • 短い(読みやすく、初心者が覚えやすいなど)

長い道のり:

  • 同じ名前のフォーム値とクエリ文字列値があれば問題ありません(通常は問題になりませんが)
  • 後でコードを読んでいる人は、データのソースを見つけるためにURLまたはフォーム要素を調べるかどうかを知っています(おそらく最も重要なポイント)

では、各アプローチには他にどのような長所/短所がありますか?

4

2 に答える 2

9

paramコレクションにはすべての(4)コレクションが含まれます。

  1. クエリ文字列パラメータ
  2. フォームフィールド
  3. クッキー
  4. サーバー変数

組み合わせたコレクションでの検索は特定のコレクションを調べるよりも遅いと議論することはできますが、違いを生むことはごくわずかです。

于 2011-02-09T03:10:19.177 に答える
4

次の理由により、長い道のりが優れています。

  • これにより、(後でコードを読むときに)値がどこから来ているのかを簡単に見つけることができます(読みやすさが向上します)

  • わずかに高速です(ただし、これは通常重要ではなく、最初のアクセスにのみ適用されます)

ASP.NET(およびPHPの同等の概念)では、私は常にあなたが「長い形式」と呼んでいるものを使用します。私は、入力値がどこから来ているのかを正確に知りたいという原則に基づいてこれを行っているので、入力値が期待どおりにアプリケーションに到達することを保証しています。ですから、私がより長い道のりを好むのは、入力の検証とセキュリティのためです。さらに、あなたが示唆しているように、保守性は数回の追加のキーストロークの価値があると思います。

于 2011-02-09T03:17:22.207 に答える