ich die folgende Schnittstelle haben, die den generischen Parameter des Typs T liefert einen Rückruf mit ...C# Generics: Wenn T ein Rückgabetyp ist, kann es auch ungültig sein? Wie kann ich diese Schnittstellen kombinieren?
public interface IDoWork<T>
{
T DoWork();
}
aber ich auch die folgende Schnittstelle auch haben, aber es wird nicht einen Rückruf aufrufen, da es void zurückgibt .
Kann ich diese beiden Schnittstellen kombinieren und Laufzeitlogik verwenden, um den Unterschied zu ermitteln? Wie kann ich das machen?
Schade, dass Sie nicht in Java Land sind, da Sie in der Lage wären etwas wie IDoWork ... 'zu tun. Ich bin irgendwie überrascht, dass C# so etwas nicht anbietet. –
@ChrisCashwell, weil .NET-Generics in die CLR integriert sind, während es in Java nur ein Compiler-Trick ist (die JVM weiß nichts über Generics zur Laufzeit). Dies ist normalerweise ein Vorteil von .NET-Generics, aber es bedeutet auch, dass die Regeln strenger sind ... –
@ThomasLevesque Wo kann ich mehr darüber lernen, wie .NETs Ansatz gegenüber Java einen Vorteil hat? – LamonteCristo