99 Stimmen

Gibt es einen vernünftigen Ansatz für "standardmäßige" Typparameter in C# Generics?

In C++ Templates kann man angeben, dass ein bestimmter Typparameter Standard ist. D.h. es wird standardmäßig Typ T verwendet, sofern nicht explizit angegeben.

Kann dies in C# durchgeführt oder angenähert werden?

Ich suche nach etwas wie:

public class MyTemplate {}

So dass eine Instanz des Typs, die T2 nicht explizit spezifiziert:

MyTemplate t = new MyTemplate();

Im Grunde genommen wäre es:

MyTemplate t = new MyTemplate();

Letztendlich bin ich auf der Suche nach einem Fall, bei dem ein Template recht weit verbreitet ist, aber ich erwäge, um einen zusätzlichen Typparameter zu erweitern. Ich könnte eine Unterklasse erstellen, nehme ich an, aber ich war neugierig, ob es in dieser Art noch andere Optionen gibt.

2voto

mattylantz Punkte 265

Wenn Sie den Typ auf das Interface überladen möchten, können Sie dies tun: Beispiel:

public interface ISRD
{
    Task SaveAsync(TItem item);
    Task GetAsync(TId id);
    Task DeleteAsync(TItem item);
}

public interface ISRD: ISRD { }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X