代码之家  ›  专栏  ›  技术社区  ›  chris

泛型接口和理解“类型参数声明必须是标识符而不是类型”

  •  1
  • chris  · 技术社区  · 15 年前

    我正在尝试理解中描述的通用接口 this

    我的示例有一个接口:

      public interface ITest<T> where T: class
      {
        T GetByID(int id);
      }
    

      public class Test<myClass> :  ITest<myClass> where myClass : class
      {
          Data.myEntities _db = new Data.myEntities();
    
          public myClass GetByID(int id)
          {
            var item = _db.myClass.First(m => m.ID == id);
            return item;
          }
    
      }
    

    很明显我遗漏了一些东西,因为我不明白这里发生了什么。有人能解释一下吗,或者指出能更好解释的地方吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Brian    15 年前

    我想您只需要从测试类中删除泛型参数。

    ... class Test : ITest<myClass> ...
    

        2
  •  0
  •   n8wrl    15 年前

    我怀疑问题出在这里:

     _db.myClass.First...
    

    你可能是说

    _db.GetAll<myClass>().First...
    

    我想你把myClass和myClass混为一谈了吗?

    推荐文章