2012-11-28 11 views
8

Eventuali duplicati:
C# Language: generics, open/closed, bound/unbound, constructedQual è il termine per i parametri generici vuoti <,> in C#?

Mentre fare alcune cose con la riflessione in C#, ho notato che alcuni tipi hanno la definizione del tipo per esempio

Foo<,> 

Qual è il termine ufficiale per questa notazione?

+6

@JohnSaunders Non lo chiamerei duplicato. Sto chiedendo "Che cos'è" Foo <,> "chiamato?" mentre sta chiedendo "Che cos'è un tipo generico non associato?" In nessun modo avrei trovato la sua domanda su Google senza sapere già il nome. – Bringer128

+0

A mio parere, questo lo rende un duplicato che non dovrebbe essere cancellato. –

+0

un collegamento più strettamente correlato: [if-at1-t2-is-a-template-per-actual-type-then-why-is-typeofa-allowed] (http://stackoverflow.com/questions/3220480/if -at1-t2-is-a-template-per-actual-type-then-why-is-typeofa-allowed? lq = 1) – nawfal

risposta

7

Tipo nomi che mancano parametri generici come List<> sono indicati come tipi generici non legati. This question ha un buon riepilogo dei tipi generici non associati e una terminologia correlata.

A seconda del contesto in cui si stanno descrivendo questi tipi, è possibile utilizzare un'altra terminologia. La specifica C# usa il termine "tipo generico non associato" per riferirsi a qualcosa come T<>. Il framework .Net sembra preferire i termini "definizione del tipo generico" (come indicato da dasblinkenlight, vedere anche Type.GetGenericTypeDefinition()) o "tipo generico aperto" (vedere l'articolo this).

+0

È * tipi generici non associati * un sinonimo di * definizione del tipo generico *? – Bringer128

+0

@ Bringer128 IMO, * tipo definizione * è il codice sorgente che definisce un tipo. Quindi, non penso che siano sinonimi. –

4

Questo è un tipo che rappresenta una definizione di tipo generico :

var genType = typeof(Foo<int,int>); 
var genTypeDef = genType.GetGenericTypeDefinition(); // Returns typeof(Foo<,>) 
+0

Is * generic type definition * un sinonimo di * tipi generici non associati *? – Bringer128

+0

@ Bringer128 I due sono correlati: la definizione di tipo generico è il termine utilizzato nella riflessione per descrivere gli oggetti 'System.Type' corrispondenti ai tipi generici illimitati. – dasblinkenlight

Problemi correlati