Key를 개체 유형으로 사용하여 사전에 함수를 저장하려고합니다. 모든 함수는 동일한 기본 클래스에서 파생 된 객체를받습니다. 등록 된 함수를 기반으로 클래스를 DbCommand로 변환 할 수 있기를 원합니다. 내가 올바른 것 같아서 뭔가를 아래에 내 코드를 나열했습니다 있지만 뭔가 정말 구문이 누락 된 것 같아 등 잘못된 ... 모든 도움을 주시면 크게 감사하겠습니다!형식을 키로 사용하여 사전에 파생 형식 매개 변수가있는 함수
private Dictionary<object, Func<TrackingRecord, DbCommand>> conversionFunctions = new Dictionary<object, Func<TrackingRecord, DbCommand>>();
public void RegisterConversionFunction<T>(Func<T, DbCommand> conversionFunction) where T : TrackingRecord
{
conversionFunctions.Add(typeof(T), conversionFunction);
}
public DbCommand GetConverstion<T>(T trackingRecord) where T : TrackingRecord
{
DbCommand command = null;
if (conversionFunctions.ContainsKey(trackingRecord.GetType()))
{
Func<T, DbCommand> conversionFunction;
if (conversionFunctions.TryGetValue(trackingRecord.GetType(), out conversionFunction))
{
command = conversionFunction.Invoke(trackingRecord);
}
}
else
{
command = DefaultConversion(trackingRecord);
}
return command;
}
을 어떤 버전의 C# /. net입니까? –
VS2010 .NET 4.0 – slocumro
TrackingRecord는 사용자 지정 클래스입니다. – slocumro