我的通用界面如下:
public IRepository< T >
{
void Add(T entity);
}
和一个班级:
public class Repository< T >:IRepository< T >
{
void Add(T entity)
{ //Some Implementation
}
}
现在我想制作上述接口的扩展方法。我做了以下课程:
public static class RepositoryExtension
{
public static void Add(this IRepository< T > dataAccessRepository, T entity, string additionalValue)
{
//Some Implementation
}
}
但是我在扩展Add方法中遇到错误。它无法识别我传递给IRepository的Type'T'。我不能将此类型传递给我的Extenstion Methods类,即RepositoryExtension&lt; T>。请以适当的方式指导。
答案 0 :(得分:17)
public static void Add<T>(this IRepository< T > dataAccessRepository, T entity, string additionalValue)
试试吧。 在添加
之后立即注意<T>
答案 1 :(得分:1)
IRepository<Employee> employeeRepository = new Repository<Employee>();
employeeRepository.Add(entity);
但是在你建议的情况下我也会将类型传递给扩展方法:
employeeRepository<Employee>(entity,"someValue")
http://just-dotnet.blogspot.in/2012/06/c-generics-introduction.html