Frage

Vor kurzem habe ich einen Begriff „nackt Art Zwang“ im Kontext von Generics lesen. Was macht es bedeuten? Wo nutzen wir es?

War es hilfreich?

Lösung

MSDN :

Constraint          Description

where T : U         The type argument supplied for T must be or derive from
                    the argument supplied for U. This is called a naked type
                    constraint.
  

Wenn ein generischer Typ Parameter als Einschränkung verwendet wird, wird es ein nackter Typ Zwang genannt. Naked-Typ Einschränkungen sind nützlich, wenn eine Elementfunktion mit einem eigenen Typ Parameter, die Parameter der Typ-Parameter des Behältertypen zu beschränken hat, wie im folgende Beispiel gezeigt:

class List<T>
{
    void Add<U>(List<U> items) where U : T {/*...*/}
}

Andere Tipps

Als beiseite, ist es mir seltsam, dass dies etwas anzügliche Begriff schafft es in die MSDN-Dokumentation zu machen. Wir nennen sicherlich nicht über diese Einschränkungen „nackten Typen Einschränkungen“ auf dem C # -Compiler Team und ich war schockiert, schockiert! Vor ein paar Jahren, dass das ist, was die Dokumentation sagte zu entdecken. Wir nennen sie in der Regel „geben Parametereinschränkungen“. Ich habe keine Ahnung, wie dieser Begriff in die Dokumentation in dem ersten Platz; gibt es wahrscheinlich eine interessante Geschichte gibt.

"Wenn ein generischer Typ Parameter als Einschränkung verwendet wird, wird es eine nackte Typ Einschränkung genannt. Naked Typ Einschränkungen nützlich, wenn eine Elementfunktion mit einem eigenen Typ Parameter, den Parameter auf die Typ-Parameter des enthaltenden Typs zu beschränken hat „

http://msdn.microsoft.com/en-us/library/ d5x73970.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top