In VB.Net können Sie etwas wie das Folgende ohne irgendwelche Probleme tun ... ignorieren Sie einfach die Tatsache, dass dies eine ziemlich nutzlose Klasse ist: -)
%Vor%Wenn Sie jedoch dasselbe in C # tun ...
%Vor%Sie erhalten einen Fehler in der Zeile mit der Rückgabe von "Collections.Generic.List" mit den Worten: "Der Typ oder Namespace-Name 'Collections' konnte nicht gefunden werden (fehlt eine using-Direktive oder eine Assembly-Referenz?)"
Ich weiß, dass Sie eine using-Direktive zu System.Collections.Generic haben müssen, um List zu verwenden, aber ich weiß nicht warum . Ich verstehe auch nicht, warum ich nicht den gleichen Fehler in der Funktionsdeklaration bekomme, sondern nur in der return-Anweisung.
Ich hatte gehofft, jemand könnte das erklären oder mich sogar auf eine Technet-Seite verweisen, die es erklärt. Ich habe gesucht, kann aber nichts finden, was dieses Konzept erklärt.
Edit: Zu beachten ist, dass es in der Frage wirklich um die Referenzierung eines Sub-Namespaces geht, wie im Beispiel, das auf Collections in System verweisen kann.
using
Direktive in C # erlaubt dies nicht :
Erstellen Sie eine using-Anweisung, um die Typen in einem Namespace ohne zu müssen Geben Sie den Namespace an. Eine Verwendung Richtlinie gibt Ihnen keinen Zugriff auf alle Namespaces, die in der Datei verschachtelt sind Namespace, den Sie angeben.
VB.NET unterstützt jedoch etwas näheres Verhalten mit Imports
Anweisung:
Der Umfang der gemachten Elemente verfügbar durch eine Imports-Anweisung hängt davon ab, wie genau du wann bist Verwenden der Imports-Anweisung. Zum Beispiel, wenn nur ein Namespace ist angegeben, alle eindeutig benannten Mitglieder dieses Namensraums und Mitglieder von Module in diesem Namensraum sind verfügbar ohne Qualifikation. Ob sowohl ein Namespace als auch der Name eines Element dieses Namensraums sind spezifiziert, nur die Mitglieder davon Element sind ohne verfügbar Qualifikation.
Tags und Links c# vb.net using using-directives