Wenn Sie eine Eigenschaft haben, die wie folgt aussieht:
%Vor%kompilieren und später ändern Sie es zu:
%Vor%Es sieht so aus, als ob der kompilierte Code zwischen den beiden Assemblys unterschiedlich ist, was ich mit dem Reflector sehen konnte.
Warum unterscheidet der Compiler zwischen den beiden Codes? Ist es nicht nur notwendig zu sehen, ob es einen mehrdeutigen Typ zur Kompilierzeit gibt und falls nicht, muss der kompilierte Code für beide identisch sein? Ich würde den kompilierten Code annehmen, um voll qualifizierte Namen für jedes Mitglied zu jeder Zeit zu verwenden.
Ich kann das nicht reproduzieren. Beispielcode:
%Vor%Die generierte IL für die zwei Eigenschaften ist genau gleich und sie sehen im Reflektor gleich aus.
Meine Annahme ist, dass Sie tatsächlich eine andere Klasse namens Vector3
im Namespace "global" (oder in einem anderen Namespace, für den Sie eine using-Direktive verwenden) erhalten haben.
Versuchen Sie, den Mauszeiger über beide Namen in Visual Studio zu bewegen und zu sehen, was sie zeigen.
Hier ist ein Beispiel, dass die Ergebnisse, die Sie beobachten, erzeugt. Hoffentlich klärt das auf, was du fragst. Angenommen, Sie haben
eine separate Bibliothek mit dem Typ Vector3
in einem Namespace Algebra
;
die folgenden Dateien in Ihrem Projekt:
Tags und Links .net c# compiler-construction