汎用インターフェース:
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);
}
エンティティに共通のデータベース操作を記述する必要がありますが、キーと値の型がわからないという問題があります。