Frage

Diese neue Funktion ist wirklich bequem.

In letzter Zeit las ich das Dokument des "Microsoft All-In-One-Code-Frameworks", und es erwähnt, dass "Optionale Parameter" nicht CLS-kompatibel ist.

Also habe ich es getestet, indem ich in einer öffentlichen API mit "optionaler Parameter" in einer öffentlichen API mithilfe von FXCOP eingeschaltet wurde, und dann habe ich kompiliert und FXCOP hat sich über nichts beschweren.Mittlerweile meldete FXCOP eine Warnung, wenn ich eine API-API-Datei hinzufüge, die als Rendite-Typ verwendet wird.

So bin ich jetzt verwirrt, ist "optionale Parameter" CLS-kompatibel oder nicht?

und was ist der beste Weg, um herauszufinden, ob eine neue Sprachfunktion CLS-kompatibel ist oder nicht?

War es hilfreich?

Lösung

Optionale Argumente sind "Art" CLS-konform. Methoden mit optionalen Argumenten sind legal und können erfolgreich mit dem generationspoDicetagcode-Attribut, , aber Anrufer dieser Methoden müssen nicht unbedingt die Standardparameterwerte oder das optionale Attribut berücksichtigen. (In diesem Fall verhalten sich diese Methoden genau auf dieselbe Weise wie Standardmethoden, wodurch alle Argumente explizit an der Anrufstelle angegeben werden.)

-Methoden, die Standardparameter verwenden sind unter der gemeinsamen Sprache erlaubt Spezifikation (CLS); Die CLS ermöglicht es Compilern, die Werte zu ignorieren die diesen Parametern zugewiesen werden. Code, der für Compiler geschrieben ist das ignorieren Standardparameterwerte Muss ausdrücklich Argumente anbieten Jeder Standardparameter. Aufrecht erhalten das Verhalten, das Sie wünschen Programmiersprachen, Methoden, die Standardparameter verwenden sollten ersetzt mit den Methodenüberlastungen Geben Sie die Standardparameter an.

(aus der Dokumentation für "CA1026: Standardparameter sollten nicht verwendet werden" . )

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top