У меня есть следующая реализация для сравнения двух объектов.получить объект класса на основе общего интерфейса
public interface IEqualityDefinition<T>
{
bool Compare(object source, T target);
}
public class BlockEqualityDefinition : IEqualityDefinition<Block>
{
public bool Compare(object source, Block target)
{
// compare stuff..
return false;
}
}
Я использовал общий интерфейс, чтобы указать, для какого класса я хочу сравнить. Далее у меня есть следующий метод:
public bool Compare(object source, object target)
{
// Here i want something else
IEqualityDefinition definition = new BlockEqualityDefinition();
return definition.Compare(source, target);
}
В этом методе я хочу, чтобы создать экземпляр класса на основе параметра «целевой». Например, когда параметр «target» содержит объект «Block», я хочу, чтобы правый класс EqualityDefinition вызывался, чтобы сделать материал сравнения для меня.
Каков наилучший способ для этого? Я не могу понять это сейчас. Благодарим за помощь!