たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

入れ子にされた型引数

#516
[C#] ディクショナリを内部に使い、等価性が定義された何かをカウントするクラスということで…
public class Counter<T>
 : IEnumerable<KeyValuePair<T, int>> where T : IEquatable<T>
{
  private Dictionary<T, int> dic;

  public void Count(T item)
  {
    int n;
    dic.TryGetValue(item, out n);
    dic[item] = n + 1;
  }

  public IEnumerator<KeyValuePair<T, int>> GetEnumerator()
  {
    return dic.GetEnumerator();
  }

  IEnumerator IEnumerable.GetEnumerator()
  {
    return GetEnumerator();
  }
  ...
}

これがテストプロジェクト
エラー
アセンブリ '**.dll' の処理中にエラーが発生しました:
型またはメソッドは 2 個のジェネリック パラメータを含んでいますが、1 個の汎用引数が指定されました。各ジェネリック パラメータに対して 1 つの汎用引数を指定しなければなりません。

となってしまった。

IEnumerable<KeyValuePair<T, int>> の実装を外せばエラーが消えるのだが…

型引数が入れ子になりすぎるのか?
にしてもなぜテストプロジェクトでエラーが起きるのか?
汎用引数って IEnumerable のことか?

よく分からん。

コメント


コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:  http://takojelly.blog2.fc2.com/tb.php/516-51c9dd99
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。