Nei modelli C++, è possibile specificare che un determinato parametro di tipo è un valore predefinito. Cioè se non specificato esplicitamente, utilizzerà il tipo T.Esiste un approccio ragionevole ai parametri di tipo "predefinito" in C# Generics?
Questo può essere fatto o approssimato in C#?
Sto cercando qualcosa di simile:
public class MyTemplate<T1, T2=string> {}
In modo che un'istanza del tipo che non specifica esplicitamente T2
:
MyTemplate<int> t = new MyTemplate<int>();
Sarebbe essenzialmente:
MyTemplate<int, string> t = new MyTemplate<int, string>();
In definitiva sto osservando un caso in cui esiste un modello che è abbastanza ampio sed, ma sto valutando l'espansione con un parametro di tipo aggiuntivo. Potrei sottoclassi, immagino, ma ero curioso di sapere se c'erano altre opzioni in questo senso.
ah ... questo ha un senso.Il nome del tipo può essere lo stesso se i parametri del tipo forniscono una firma univoca? – el2iot2
@ee: sì, i generici sono "overloadabili" dal conteggio dei parametri. –
@ee: Sì, ma sarei diffidente nel farlo. È "legale" in .NET farlo, ma può creare confusione. Preferirei che il nome del tipo derivato dalla stringa fosse simile alla classe generica principale (quindi è ovvio quale sia/facile da trovare), ma un nome che renda ovvio che si tratta di una stringa. –