2016-04-11 7 views
2

Wenn die folgende ist ein generisches Objekt:Naming Convention: Nicht-Generika

public class Kennel<T> 
{ 
    public List<T> Animals { get; set; } 
} 

Dies ist ein nicht-generisches Objekt sein würde: \

public class Kennel 
{ 
    public List<Dog> Animals { get; set; } 
} 

Gibt es eine gute Bezeichnung für eine nicht generische Klasse (abgesehen von nicht-generischen)?

+1

Standard oder vielleicht Beton? –

+0

Ja - Beton ist ziemlich gut, aber ich benutze es bereits, um nicht abstrakte Klassen zu beschreiben ... was eine andere Art ist, Klassen zu kategorisieren ... vielleicht, wenn ich mir eine bessere Beschreibung einer nicht abstrakten Klasse vorstellen könnte? – William

Antwort

4

In der C# -Spezifikation ist kein guter Begriff für die gewünschte Bedeutung definiert. Die Spezifikation definiert:

  • Ein offener Typ beinhaltet einen Typparameter; Alle nicht offenen Typen sind geschlossene Typen. Also sind alle nicht-generischen Typen geschlossene Typen, aber auch List<int>. Kein Typ Parameter drin; int ist ein Typ Argument. List<T> ist ein offener Typ.

  • Ein ungebundener Typ ist entweder ein nicht generischer Typ oder der Typ einer Deklaration eines generischen Typs. Wenn Sie beispielsweise class C<T> sagen, dann ist der abstrakte Begriff "C -of-one-type-Parameter" ein ungebundener Typ und C<int> ist ein gebundener Typ. Nicht-generische Typen sind sowohl gebunden als auch nicht gebunden, so dass Ihnen das auch nicht weiterhilft. Man beachte, dass in class C<T> { public static C<T> c; } der zweite C<T> ein gebundener Typ ist; Der Typparameter wurde geliefert und ist T.

Die C# -Spezifikation verwendet nur "nicht generisch", wann immer das gemeint ist.