|
NET ist eine eigenständige Sprache. Das bedeutet, dass Sie als Entwickler in einer der vielen an .NET orientierten Sprachen (z. B. C#, C++/CLI, Eiffel, F#, IronPython, IronRuby, PowerBuilder, Visual Basic, Visual COBOL und Windows PowerShell) entwickeln können. NET-Entwicklung. Zugriff auf die Typen und Member von Klassenbibliotheken, die für .NET entwickelt wurden, ohne die ursprüngliche Autorensprache zu kennen oder die Konventionen der Originalsprache zu befolgen. Wenn Sie ein Komponentenentwickler sind, kann auf Ihre Komponenten von jeder .NET-Anwendung zugegriffen werden, unabhängig von der Sprache, in der sie geschrieben wurden.
Wenn Ihre Komponente der Common Language Specification entspricht, ist sie garantiert CLS-kompatibel und kann von Code in einer Assembly angesprochen werden, die in einer beliebigen Programmiersprache geschrieben wurde, die CLS unterstützt. Sie können feststellen, ob Ihre Komponente zur Kompilierungszeit konform ist, indem Sie das Feature CLSCompliantAttribute auf den Quellcode anwenden.
In der öffentlichen Sprachspezifikation werden alle Regeln der CLS-Konformität für Benutzer (Entwickler, die programmatisch auf CLS-konforme Komponenten zugreifen), Frameworks (Entwickler, die mithilfe von Sprachcompilern CLS-konforme Bibliotheken erstellen) und Extender (Entwickler, die Tools wie Sprachcompiler oder Codeanalysatoren erstellen, die CLS-konforme Komponenten erzeugen) erläutert. Standardmäßig wird der Code beim Kompilieren der Anwendung nicht auf CLS-Konformität geprüft. Wenn Ihr Code jedoch öffentlich verfügbar ist (Code-Shares, Nuget-Veröffentlichungen usw.), wird empfohlen, [assembly: CLSCompliant(true)] zu verwenden, um anzugeben, dass Ihre Bibliothek CLS-konform ist.
Referenzen:
h ttps:// docs.microsoft.com/en-us/dotnet/standard/language-independence-and-language-independent-components h ttps:// docs.microsoft.com/zh-cn/dotnet/api/system.clscompliantattribute?view=net-5.0 h ttps:// www.ecma-international.org/publications/standards/Ecma-335.htm
Für den Laien ausgedrückt:
Man kann mit den Händen essen, man kann mit einem Löffel essen, es gibt kein Problem, aber das Essen mit den Händen entspricht nicht den Hygienestandards oder -normen.CLS ist eine Protokollspezifikation, obwohl die Baugruppe keine Fehler meldet und die normale Verwendung nicht beeinträchtigt, aber Sie entwickeln Code, der bestimmte Typen, Parameter usw. nicht einhält.
CLS verwenden
In der Datei AssemblyInfo.cs fügen wir den folgenden Code ein:
Sie wird auf die gesamte Baugruppe angewendet.
Wenn Sie es nicht festlegen, wird beim Hinzufügen des Merkmals zu einem Objekt möglicherweise der folgende Fehler angezeigt:
Da die Baugruppe nicht über das Merkmal CLSCompliant verfügt, benötigt "A.Test" das Merkmal CLSCompliant nicht. Testen Sie den Code wie folgt und kompilieren Sie neu:
Der Typ von "A.Test" ist nicht CLS-konform.
Sie können sehen, dass es zwei Warnungen gibt. Wenn Sie auf die Warnung klicken, wird die entsprechende Zeilennummer angezeigt, die besagt, dass unsere Codezeile nicht mit der CLS-Spezifikation übereinstimmt.
Wenn die Zeile nicht mit der CLS-Spezifikation übereinstimmt, die Änderung sich aber auf die korrekte Funktion des Programms auswirkt, Sie aber nicht möchten, dass vs eine Warnung ausgibt, können Sie die folgenden Merkmale in das Feld Klasse oben einfügen:
Dadurch wird diese Warnung nicht ausgegeben.
(Ende)
|
Vorherige: Entity Framework Abfrageoptimierung MIT (NOLOCK)Next :.NET/C# Abfrage des aktuellen Anwendungsstatus (CPU, Thread, GC)
|