通用接口:
interface IEntity<TKey, TValue>
{
TKey Key { get; set; }
TValue Value { get; set; }
}
我的实体类:
class MyEntity : IEntity<int, string>
{
public Key { get; set; }
public Value { get; set; }
}
以及一种以通用方式对所有可能的实体做某事的方法:
void MyMethode<T>(T entity) where T : IEntity<int, string> // there is no point, need T parameters
{
DoEntity(entity.Key, entity.Value);
}
我需要完成类似的事情:
void MyMethode<T>(T entity) where T : IEntity<TKey, TValue> // this is not allowed
{
DoEntity(entity.Key, entity.Value);
}
我需要在我的实体上编写通用数据库操作,但问题是我不知道 Key 和 Value 将是什么类型。