Ich bekomme die Warnung so Wenn Sie wissen, was es ist, erklären Sie bitte & helfen Sie mir, es loszuwerden. Nam.Argumenttyp ist nicht CLS-konform, warum?
Antwort
In Ihrem AssemblyInfo.cs-Datei, Sie haben wahrscheinlich eine Linie, die
[assembly:CLSCompliant(true)]
liest Wenn Sie das tun, dann werden die folgenden Regeln eingehalten werden müssen. (Copy-Pasta aus http://www.devarticles.com/c/a/C-Sharp/Making-Your-Code-CLS-Compliant/)
Unsigned Typen sollten nicht Teil der öffentlichen Schnittstelle der Klasse sein. Dies bedeutet, dass öffentliche Felder keine vorzeichenlosen Typen wie uint oder ulong aufweisen dürfen. Öffentliche Methoden sollten keine vorzeichenlosen Typen zurückgeben. An die öffentliche Funktion übergebene Parameter sollten keine vorzeichenlosen Typen aufweisen. Nicht vorzeichenbehaftete Typen können jedoch zu privaten Mitgliedern gehören.
Unsichere Typen wie Zeiger sollten nicht mit öffentlichen Mitgliedern verwendet werden. Sie können jedoch mit privaten Mitgliedern verwendet werden.
Klassennamen und Elementnamen sollten sich nicht nur in ihrem Fall unterscheiden. Zum Beispiel können wir nicht zwei Methoden namens MyMethod und MYMETHOD haben.
Nur Eigenschaften und Methoden können überlastet sein, Operatoren sollten nicht überlastet werden.
Nicht signierte Typen können Teil einer öffentlichen Schnittstelle sein, wenn sie keine Funktionalität offen legen, die in einer Sprache ohne unsignierte Typen geschrieben wurde, die möglicherweise verwendet werden, jedoch nicht in der Lage sind.Beispielsweise könnte eine Methode zum Speichern eines 32-Bit-Werts ohne Vorzeichen in vier aufeinanderfolgenden Bytes legitim Überladungen sowohl für "UInt32" als auch für "Int64" enthalten, und eine Klasse könnte auch eine Methode zum Konvertieren von vier aufeinanderfolgenden Bytes in "UInt32" bereitstellen vorausgesetzt, dass einer den gleichen Wert wie ein "Int64" zurückgibt. – supercat
Einige weitere Informationen:
Und Sie können diese Warnungen in einer CLS-kompatiblen Baugruppe erhalten, das verweist auf eine nicht-CLS-kompatiblen Baugruppe (und macht seine Nicht-CLS-konforme Mitglieder):
Erster Link unterbrochen. – rkg
Dies ist eine alte Frage, aber ich dachte, dass eine bessere Erklärung für zukünftige Ermittler (wie mich) fällig ist.
Zunächst einmal geben die Links in den anderen Antworten sehr detailliert Auskunft darüber, warum diese Warnung gegeben wurde.
Zusammengefasst, Code für die Common Language Runtime geschrieben (wie C#) ist CLS-kompatibel, wenn es mit anderen Sprachen für die CLR Schnittstelle kann. Dies bedeutet, dass bestimmte für die Sprache spezifische Datentypen, die nicht für die gesamte Laufzeit gelten, nicht kompatibel sind. Die schnelle und einfache Lösung für Variablen und Methoden besteht darin, ihnen den Sichtbarkeitsmodifikator internal
zu geben, der angibt, dass die Methode, Klasse, Eigenschaft usw. außerhalb der Assembly, für die sie erstellt wird, nicht sichtbar ist. Dies sollte nur für die Elemente erfolgen, die Sie außerhalb der Baugruppe nicht benötigen oder verwenden möchten. Für diejenigen, die sichtbar sein sollen, verwenden Sie CLS-konforme Datentypen.
- 1. Warum std :: function :: Argumenttyp ist veraltet?
- 2. Argumenttyp ‚VOID‘ ist nicht übertragbar Typ ‚System.Action‘
- 3. Argumenttyp 'FluentNHibernate.Mapping.IProperty' ist nicht CLS-kompatibel
- 4. EF Core: Der Argumenttyp ist nicht dem Parameter
- 5. Nil ist nicht kompatibel mit dem erwarteten Argumenttyp ‚UIColor‘
- 6. IllegalArgumentException: Argumenttyp stimmt nicht mit Hibernate überein
- 7. JavaFx Event Argumenttyp stimmt nicht überein
- 8. Int 'zu erwarteten Argumenttyp '
- 9. Argumenttyp Fehler auf MKPlacemark
- 10. Was ist der korrekte Argumenttyp für ein Funktionsobjekt?
- 11. Warum kann C# nicht auf den generischen Typ-Argumenttyp einer nicht-generischen statischen Methodensignatur schließen?
- 12. Java-Argumenttyp Fehler
- 13. Warum ist der Argumenttyp der arithmetischen Operatoren standardmäßig auf int gesetzt?
- 14. Wert kann nicht vom Typ Int erwarteten Argumenttyp umwandeln ‚...‘
- 15. Swift: Argumenttyp ‚[String: Valuetype]‘ entspricht nicht erwarteten Typ ‚ANYOBJECT‘
- 16. Argumenttyp Deduktion, Referenzen und rvalues
- 17. Warum kann eine Klasse mit einem Typparameter, der ausschließlich als Argumenttyp verwendet wird, nicht kovariant sein?
- 18. JSF 2.0; "Argumenttyp stimmt nicht überein" von der benutzerdefinierten Datentypklasse?
- 19. Basisklassenvorlage Instanziierung abhängig von abgeleiteten Klassenkonstruktor Argumenttyp
- 20. Warum Javascript ist nicht
- 21. Warum ist das Argument der Referenzvorlage nicht const?
- 22. Argumenttyp 'AnyObject' entspricht nicht dem erwarteten Typ NSCopying
- 23. IntelliJ und Angular 2 Argumenttyp nicht zuweisbare Fehler
- 24. IOS Swift Amazon S3 Transfer Nutz nil ist nicht kompatibel mit dem erwarteten Argumenttyp NSURL
- 25. Scala Fallklasse mit Argumenttyp Änderung zur Laufzeit
- 26. Warum ist java.util.Map.get (...) nicht generisch?
- 27. Warum ist Double.MIN_VALUE nicht negativ
- 28. Warum ist ReactRedux nicht definiert?
- 29. Warum ist javax.money.CurrencyUnit nicht serialisierbar?
- 30. Warum AudioManager.isStreamMuted ist nicht verfügbar?
Wie sieht INotificationService aus? –