c # mit Direktive Tiefe

8

Ich versuche die c # Anweisung zu verstehen ... Warum funktioniert das?

%Vor%

aber das nicht?

%Vor%

Die zweite führt zu einem Kompilierungsfehler "Der Typ oder der Namespace DataAnnotations kann nicht gefunden werden. Vermissen Sie eine verwendung Direktive oder eine Assembly-Referenz?

    
Shawn de Wet 20.07.2011, 18:32
quelle

2 Antworten

7

using Direktive ermöglicht die Verwendung von Klassennamen aus dem Namespace, den Sie als Argument angegeben haben. Da DataAnnotations keine Klasse, sondern ein Namespace ist, ist sie im zweiten Fall nicht verfügbar. Sie sollten entweder vollqualifizierte Klassennamen NS1.NS2.Class1 verwenden oder Ihr Programm mit NS1.NS2 starten; und dann Class1 verwenden.

    
Andrey Agibalov 20.07.2011, 18:36
quelle
1

Weil Sie entweder Fully Qualified Class Names verwenden können oder verwenden Sie einfach den Klassennamen und lassen Sie .NET über die using -Direktive auflösen. Es gibt keinen Mittelweg.

Klasse1 -

%Vor%

kann als

aufgerufen werden %Vor%

oder

%Vor%

aber nicht wie

%Vor%

Im letzten Fall würde der Compiler eigentlich nach dem Root-Namensraum NameSpace3 suchen, der eindeutig nicht existiert. Es wird nicht versucht, nach System.NameSpace3 oder NameSpace1.NameSpace3 oder NameSpace1.NameSpace2.NameSpace3 usw. zu suchen.

    
YetAnotherUser 20.07.2011 18:41
quelle

Tags und Links