2008-12-02 8 views
13

Ich habe ein paar quälenden Compiler-Warnungen für eine App, die ich von VB6 portierte vor einiger Zeit in Bezug auf CLS-Konformität einschließlich:Welche Konsequenzen hat der NON-CLS-kompatible Code in .NET?

Name '_AnIdentifier' is not CLS-Compliant. 
Type of parameter 'myType' is not CLS-Compliant. 

Trotzdem, meine app scheint ganz gut von COM und Managed Clients auszuführen. Ich habe mehrere Artikel gesehen, die beschreiben, was zu tun ist, um den Code CLS-konform zu machen, und ich werde wahrscheinlich trotzdem weitermachen, um die nagenden Warnungen loszuwerden, aber ich bin gespannt, welche Nachteile nicht-CLS-konformer Code praktisch ist Begriffe? Welche Einschränkungen hat dieser Betrug, den ich noch nicht entdeckt habe?

Antwort

10

Grundsätzlich ist Ihre Klasse möglicherweise nicht verfügbar (oder verhält sich merkwürdig, z. B. wenn große positive Zahlen als negativ behandelt werden), wenn sie mit einigen .NET-Sprachen verwendet werden. Ich kann nicht sagen, welche Sprachen sie sein könnten.

Zum Beispiel glaube ich nicht, dass eine Sprache erforderlich ist, um einen Identifier zu erkennen, der mit einem Unterstrich beginnt. C# lässt es zu, so dass Sie dort sicher sind, aber für andere Sprachen kann "_AnIdentifier" versteckt sein oder einen vom System generierten Namen haben.

4

Ich bin auf Probleme mit Verschleierungstools gestoßen, die falschen verschleierten Code erzeugen, wenn Code, der nicht CLS-kompatibel ist, verschleiert wird.

Verwandte Themen