Ich habe die folgende Implementierung für den Vergleich zweier Objekte.get Objekt der Klasse basierend auf der generischen Schnittstelle
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;
}
}
Ich verwendete eine generische Schnittstelle, um anzugeben, für welche Klasse ich vergleichen möchte. Als nächstes habe ich die folgende Methode:
public bool Compare(object source, object target)
{
// Here i want something else
IEqualityDefinition definition = new BlockEqualityDefinition();
return definition.Compare(source, target);
}
Bei diesem Verfahren möchte ich eine Klasse instanziiert basierend auf dem ‚Ziel‘ Parameter. Wenn zum Beispiel der Parameter 'target' ein Objekt 'Block' enthält, möchte ich, dass die richtige EqualityDefinition-Klasse aufgerufen wird, um das Vergleichsmaterial für mich zu erstellen.
Was ist der beste Weg, dies zu tun? Ich kann es jetzt nicht herausfinden. Vielen Dank für Ihre Hilfe!