3

Resharper はIDictionary<string, string>、次のコード行を変更することを提案しています。

private static void createCookie(HttpCookie cookie, IDictionary<string, string> values)

IEnumerable<KeyValuePair<string, string>>

IEnumerable<KeyValuePair<string, string>>overを使用する利点がわかりませんIDictionary

4

4 に答える 4

6

Resharper は、コード内で辞書固有の処理を行っていないことに気付いたので、より一般的なオブジェクトも受け入れられるようにすることを提案しています。コードで行っていることはすべて、IEnumerable<KeyValuePair<string, string>>.

于 2013-07-03T14:06:11.047 に答える
1

この特定のケースでは、あまり利点はありません。

ただし、一般的には、メソッドを呼び出す方法の数が増えるため、可能な限り最も一般的なパラメーターの型を使用することをお勧めします。

したがって、関数には、を実装するものなら何でもIEnumerable<KeyValuePair<string, string>>渡すことができます。これにはIDictionary<string, string>、潜在的に他の多くの型も含まれます。

Resharper は、それが実際に役立つかどうかわからないため、常に警告を発します。

于 2013-07-03T14:06:00.497 に答える