Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden die folgenden Compilerfehler behandelt:
- CS0022: Falsche Anzahl von Indizes innerhalb von [], erwartet wird ‚number‘
-
CS0178: Ungültiger Rang-Spezifizierer: '
,' oder ']' erwartet - CS0248: Ein Array mit einer negativen Größe kann nicht erstellt werden.
-
CS0270: Die Arraygröße kann nicht in einer Variablendeklaration angegeben werden. (Versuchen Sie sie mit einem '
new'-Ausdruck zu initialisieren.) - CS0611: Arrayelemente können nicht vom folgenden Typ sein:
- CS0623: Array-Initialisierer können nur in einem Variablen- oder Feldinitialisierer verwendet werden. Versuchen Sie stattdessen, einen neuen Ausdruck zu verwenden.
- CS0650: Fehlerhafte Arraydeklaration: Beim Deklarieren eines verwalteten Arrays steht der Rangspezifizierer vor dem Variablenbezeichner. Zum Deklarieren eines Pufferfelds fester Größe verwenden Sie vor dem Feldtyp das Schlüsselwort „fixed“.
- CS0719: Arrayelemente dürfen keinen statischen Typ aufweisen.
- CS0747: Ungültiger Initialisierer-Deklarator.
- CS0820: Ein Array-Initialisierer kann nicht einer implizit typisierten lokalen Variablen zugewiesen werden.
- CS0826: Es wurde kein optimaler Typ für das implizit typisierte Array gefunden.
- CS0846: Ein geschachtelter Arrayinitialisierer wird erwartet.
- CS1063: Die Add-Methode mit der besten Überladung für das Element „collection initializer“ ist veraltet.
-
CS1552: Der Arraytypspezifizierer
[]muss vor dem Parameternamen stehen. - CS1586: Für die Arrayerstellung ist eine Arraygröße oder ein Arrayinitialisierer erforderlich.
- CS1920: Der Elementinitialisierer darf nicht leer sein.
-
CS1921: Die Match-Methode mit der besten Überladung hat eine falsche Signatur für das Initializer-Element. Die initialisierbare
Addmuss eine zugängliche Instanz-Methode sein. - CS1925: Ein Objekt vom Typ 'type' kann nicht mit einem Auflistungsinitialisierer initialisiert werden.
- CS1950: Die optimale überladene Add-Methode für den Auflistungsinitialisierer weist einige ungültige Argumente auf.
-
CS1954: Die Match-Methode mit der besten Überladung für das Element „collection initializer“ kann nicht verwendet werden. Initialisierungsmethoden für Collection ‚
Add‘ können keinerefoderoutParameter haben. - CS9174: Der Typ kann nicht mit einem Collection-Literal initialisiert werden, da er nicht erstellt werden kann.
- CS9176: Es gibt keinen Zieltyp für das Collection-Literal.
- CS9185: Der Generatortyp CollectionBuilderAttribute muss eine nicht generische Klasse oder Struktur sein.
- CS9186: Der Name der CollectionBuilderAttribute-Methode ist ungültig.
-
CS9187: Es konnte keine barrierefreie Methode mit der erwarteten Signatur gefunden werden: eine statische Methode mit einem einzelnen Parameter vom Typ
ReadOnlySpan<T>; und korrektem Rückgabetyp - CS9188: Typ verfügt über ein CollectionBuilderAttribute aber keinen Elementtyp.
- CS9203: Ein Auflistungsausdruck dieses Typs kann in diesem Kontext nicht verwendet werden, da er außerhalb des aktuellen Bereichs verfügbar gemacht werden kann.
- CS9210: Diese Version von System.Collections.Immutable.ImmutableArray<T> kann nicht mit Auflistungsausdrücken verwendet werden.
-
CS9212: Der Spread-Operator '
..' kann nicht für Variablen vom Typ 'type' verwendet werden, da 'type' keine öffentliche Instanz oder Erweiterungsdefinition für 'member' enthält. - CS9213: Das Sammlungsausdrucksziel "type" hat keinen Elementtyp.
- CS9214: Der Sammlungsausdruckstyp muss über einen anwendbaren Konstruktor verfügen, der ohne Argumente aufgerufen werden kann.
- CS9215: Der Sammlungsausdruckstyp "type" muss eine Instanz oder Erweiterungsmethode "Add" aufweisen, die mit einem einzelnen Argument aufgerufen werden kann.
- CS9222: Der Sammlungsinitialisierer führt zu einer unendlichen Kette von Instanziierungen der Sammlung "type".
- CS9332: Der Spread-Operator ".." kann im Filterausdruck einer Catch-Klausel nicht verwendet werden.
- CS9354: "with(...)" -Element muss das erste Element sein
- CS9355: 'with(...)'-Elemente werden für den Typ 'Type' nicht unterstützt.
- CS9356: 'with(...)' -Elementargumente können nicht dynamisch sein
- CS9357: ‚with(...)‘-Element für eine Nur-Lesen-Schnittstelle muss leer sein, wenn vorhanden
- CS9358: Der Elementtyp dieser Auflistung kann weder eine Verweisstruktur noch ein Typparameter sein, der Verweisstrukturen zulässt.
- CS9359: Keine Überladung für Methode ‚method‘ nimmt ‚number‘ 'with(...)' Element Argumente entgegen
Darüber hinaus werden in diesem Artikel die folgenden Warnungen behandelt:
- CS1062: Die Add-Methode mit der besten Überladung für das Element „collection initializer“ ist veraltet.
- CS1064: Die Add-Methode mit der besten Überladung für das Element „collection initializer“ ist veraltet.
- CS3007: Die überladene Methode 'method', die sich nur durch unbenannte Arraytypen unterscheidet, ist nicht CLS-kompatibel.
- CS3016: Arrays als Attributargumente sind nicht CLS-kompatibel.
- CS0251: Indizierung eines Arrays mit einem negativen Index (Arrayindizes starten immer mit Null).
- CS9208: Ein Sammlungsausdruck kann unerwartete Heap-Allokationen verursachen. Erwägen Sie, explizit ein Array zu erstellen und dann in den endgültigen Typ zu konvertieren, um die Zuordnung sichtbar zu machen.
-
CS9209: Collection-Ausdruck kann unerwartete Heap-Zuweisungen aufgrund der Verwendung von ‚
..‘-Spreads verursachen. Erwägen Sie, explizit ein Array zu erstellen und dann in den endgültigen Typ zu konvertieren, um die Zuweisung explizit zu machen. - CS9332: Der Spread-Operator ".." kann im Filterausdruck einer Catch-Klausel nicht verwendet werden.
Ungültiger Zugriff auf Arrayelemente
- CS0022: Falsche Anzahl von Indizes innerhalb von [], erwartet wird ‚number‘
- CS0251: Indizierung eines Arrays mit einem negativen Index (Arrayindizes starten immer mit Null).
Um ordnungsgemäß auf Arrayelemente zuzugreifen, befolgen Sie diese Indizierungsregeln. Weitere Informationen finden Sie unter Arrays.
- Geben Sie dieselbe Anzahl von Indizes wie deklarierte Dimensionen an (CS0022). Ein eindimensionales Array benötigt einen Index; Ein dreidimensionales Array benötigt drei Indizes.
- Verwenden Sie nur nicht negative ganze Zahlen für Arrayindizes (CS0251). Arrayindizes beginnen immer bei Null.
Ungültiger Sammlungsinitialisierer
- CS0747: Ungültige Deklaration des Initialisierer-Mitglieds.
- CS1920: Der Elementinitialisierer darf nicht leer sein.
-
CS1921: Die Match-Methode mit der besten Überladung hat eine falsche Signatur für das Initializer-Element. Die initialisierbare
Addmuss eine zugängliche Instanz-Methode sein. - CS1922: Typ 'type' kann nicht mit einem Sammlungsinitialisierer initialisiert werden, da 'type' 'System.Collections.IEnumerable' nicht implementiert.
- CS1925: Ein Objekt vom Typ 'type' kann nicht mit einem Sammlungsinitialisierer initialisiert werden.
- CS1927: Warnung: Ignorieren von /win32manifest für Modul, da es nur für Assemblys gilt
- CS1950: Die optimale überladene Add-Methode für den Auflistungsinitialisierer weist einige ungültige Argumente auf.
-
CS1954: Die Match-Methode mit der besten Überladung für das Element „collection initializer“ kann nicht verwendet werden. Initialisierungsmethoden für Collection ‚
Add‘ können keinerefoderoutParameter haben. - CS9174: Der Typ kann nicht mit einem Collection-Literal initialisiert werden, da der Typ nicht konstruiert werden kann.
- CS9176: Es gibt keinen Zieltyp für das Collection-Literal.
- CS9203: Ein Auflistungsausdruck dieses Typs kann in diesem Kontext nicht verwendet werden, da er außerhalb des aktuellen Bereichs verfügbar gemacht werden kann.
- CS9210: Diese Version von System.Collections.Immutable.ImmutableArray<T> kann nicht mit Auflistungsausdrücken verwendet werden.
-
CS9212: Der Spread-Operator '
..' kann nicht für Variablen vom Typ 'typ' verwendet werden, da 'type' keine öffentliche Instanz oder Erweiterungsdefinition für 'member' enthält. - CS9213: Das Sammlungsausdrucksziel "type" hat keinen Elementtyp.
- CS9214: Der Sammlungsausdruckstyp muss über einen anwendbaren Konstruktor verfügen, der ohne Argumente aufgerufen werden kann.
- CS9215: Der Sammlungsausdruckstyp "type" muss eine Instanz oder Erweiterungsmethode "Add" aufweisen, die mit einem einzelnen Argument aufgerufen werden kann.
- CS9222: Der Sammlungsinitialisierer führt zu einer unendlichen Kette von Instanziierungen der Sammlung "type".
- CS9332: Der Spread-Operator ".." kann im Filterausdruck einer Catch-Klausel nicht verwendet werden.
- CS9354: "with(...)" -Element muss das erste Element sein
- CS9355: 'with(...)'-Elemente werden für den Typ 'Type' nicht unterstützt.
- CS9356: 'with(...)' -Elementargumente können nicht dynamisch sein
- CS9357: ‚with(...)‘-Element für eine Nur-Lesen-Schnittstelle muss leer sein, wenn vorhanden
- CS9358: Elementtyp dieser Auflistung darf keine Verweisstruktur oder ein Typparameter sein, der Verweisstrukturen erlaubt.
- CS9359: Keine Überladung für Methode ‚method‘ nimmt ‚number‘ 'with(...)' Element Argumente entgegen
Der Compiler generiert möglicherweise auch die folgenden Warnungen:
- CS1062: Die Add-Methode mit der besten Überladung für das Element „collection initializer“ ist veraltet.
- CS1063: Die Add-Methode mit der besten Überladung für das Element „collection initializer“ ist veraltet.
- CS1064: Die Add-Methode mit der besten Überladung für das Element „collection initializer“ ist veraltet.
- CS9208: Collection-Ausdruck kann zu unerwarteten Heap-Zuweisungen führen. Erwägen Sie, explizit ein Array zu erstellen und dann in den endgültigen Typ zu konvertieren, um die Zuweisung explizit zu machen.
-
CS9209: Collection-Ausdruck kann unerwartete Heap-Zuweisungen aufgrund der Verwendung von ‚
..‘-Spreads verursachen. Erwägen Sie, explizit ein Array zu erstellen und dann in den endgültigen Typ zu konvertieren, um die Zuweisung explizit zu machen.
Um gültige Sammlungsinitialisierer zu erstellen, befolgen Sie diese Regeln. Weitere Informationen finden Sie unter Sammlungsausdrücke.
- Kombinieren Sie die Eigenschaftsinitialisierung nicht mit dem Hinzufügen von Elementen im selben Initialisierungsprogramm (CS0747).
- Fügen Sie mindestens ein Element in Auflistungsinitialisierer mit geschweiften Klammern ein (CS1920).
- Stellen Sie sicher, dass der Sammlungstyp
IEnumerableimplementiert wird (CS1922). - Verwenden Sie Sammlungsinitialisierer nur für Sammlungstypen (CS1925).
- Überprüfen Sie, ob auf die
Add-Methode zugegriffen werden kann, ob sie einen Parameter akzeptiert, der dem Elementtyp entspricht, und keineref- oderout-Modifizierer verwendet (CS1921, CS1954). - Auflösen von mehrdeutigen
AddMethodenüberladungen (CS1950). - Geben Sie einen expliziten Zieltyp für Sammlungsausdrücke an, wenn der Compiler ihn nicht ableiten kann (CS9176, CS9213).
- Stellen Sie sicher, dass der Sammlungstyp mit einem parameterlosen Konstruktor (CS9174, CS9214) konstruierbar ist.
- Verwenden Sie keine
ref struct-Typen in Auflistungsausdrücken, die die Ref-Sicherheit verletzen könnten (CS9203). - Aktualisieren auf eine kompatible Laufzeitversion für
ImmutableArraySammlungsausdrücke (CS9210). - Implementieren von Enumerationsmustern (wie
GetEnumerator) für Spreadoperator-Unterstützung (CS9212). - Vermeiden Sie Zirkelabhängigkeiten in der Sammlungsinitialisierung (CS9222).
- Verwenden Sie den Spread-Operator nicht in Catch-Klausel-Filterausdrücken (CS9332).
- Platzieren Sie das
with(...)Element zuerst in Auflistungsausdrücken (CS9354). - Verwenden Sie
with(...)Elemente nur für Typen, die Auflistungsausdrucksargumente (CS9355) unterstützen. - Verwenden Sie keine dynamischen Argumente in
with(...)Elementen (CS9356). - Verwenden Sie ein leeres
with()für schreibgeschützte Schnittstellentypen (CS9357). - Verwenden Sie Verweisstrukturtypen nicht als Elementtypen in Auflistungen, die sie nicht unterstützen (CS9358).
- Stimmen Sie die Anzahl der
with(...)Argumente mit verfügbaren Konstruktorüberladungen (CS9359) überein.
Ungültiger Arrayrang
-
CS0178: Ungültige Rangangabe: Erwartet wird '
,' oder ']' - CS0650: Fehlerhafte Arraydeklaration: Beim Deklarieren eines verwalteten Arrays steht der Rangspezifizierer vor dem Variablenbezeichner. Zum Deklarieren eines Pufferfelds fester Größe verwenden Sie vor dem Feldtyp das Schlüsselwort „fixed“.
-
CS1552: Der Arraytypspezifizierer
[]muss vor dem Parameternamen stehen.
Um Arrays richtig zu deklarieren, befolgen Sie die richtige Syntaxreihenfolge. Weitere Informationen finden Sie im Abschnitt " Arrays " und im Abschnitt "C#-Sprachspezifikation " für Arrayinitialisierer.
Eine Arraydeklaration besteht aus diesen Token in der reihenfolge:
- Der Typ von Array-Elementen (z. B.
int,string, oderSomeClassType). - Die Array-Klammern, optional mit Kommas für mehrere Dimensionen.
- Der Variablenname.
Wenn Sie Arrayabmessungen angeben, können Sie Folgendes verwenden:
- Anzahl von Elementen in Klammern (
{und}) - Leere Klammern
- Mindestens ein oder mehrere in Klammern eingeschlossene Kommas
Die folgenden Beispiele zeigen gültige Arraydeklarationen:
int[] anArrayOfIntegers;
string[,,] threeDimensionalStringArray;
Ungültige Arraylänge
- CS0248: Ein Array mit einer negativen Größe kann nicht erstellt werden.
- CS0270: Arraygröße kann nicht in einer Variablendeklaration angegeben werden (versuchen Sie, mit einem "neuen" Ausdruck zu initialisieren)
- CS1586: Array-Erstellung muss Array-Größe oder Array-Initialisierer haben
Wenn Sie Arrays mit gültigen Längen erstellen möchten, geben Sie die Größe während der Initialisierung an, nicht Deklaration. Weitere Informationen finden Sie unter Arrays.
- Geben Sie die Arraylänge als Teil der Initialisierung an, nicht als Deklaration (CS0270).
- Verwenden Sie nur positive ganze Zahlen für Arrayabmessungen (CS0248).
- Geben Sie entweder eine Größe in einem
newAusdruck oder einen Arrayinitialisierer (CS1586) an.
Das folgende Beispiel zeigt beide Mechanismen:
int[] fiveIntegers = new int[5];
string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
Ungültiger Elementtyp
- CS0611: Arrayelemente können nicht vom Typ 'type' sein.
- CS0719: Arrayelemente dürfen keinen statischen Typ aufweisen.
- CS0820: Ein Array-Initialisierer kann nicht einer implizit typisierten lokalen Variable zugewiesen werden
- CS0826: Kein optimaler Typ für implizit typierte Arrays gefunden
Wenn Sie Arrays mit korrekten Elementtypen verwenden möchten, befolgen Sie diese Typeinschränkungen. Weitere Informationen finden Sie unter implizit typierten lokalen Variablen und am häufigsten verwendeten Typ.
- Verwenden Sie keine eingeschränkten Typen wie System.TypedReference und System.ArgIterator als Arrayelementtypen (CS0611).
- Verwenden
staticSie Klassen nicht als Arrayelementtypen, da Instanzen nicht erstellt werden können (CS0719). - Initialisieren implizit typisierter Arrays mit einem
newAusdruck (CS0820). - Stellen Sie sicher, dass alle Elemente in einem implizit typisierten Arrayinitialisierer einen am häufigsten verwendeten Typ (CS0826) aufweisen.
Die folgenden Beispiele zeigen, wie implizit typierte Arrays deklariert werden:
var implicitType = new[] { 1, 2, 3 };
char c = 'c';
short s1 = 0;
short s2 = -0;
short s3 = 1;
short s4 = -1;
// common type is "int"
var commonType = new[] { s1, s2, s3, s4, c, 1 };
Um einen am häufigsten verwendeten Typ zu gewährleisten, verwenden Sie eine der folgenden Techniken:
- Weisen Sie dem Array einen expliziten Typ zu.
- Weisen Sie allen Arrayelementen denselben Typ zu.
- Geben Sie explizite Casts für Elemente an, die das Problem verursachen könnten.
Ungültiger Arrayinitialisierer
- CS0623: Array-Initialisierer können nur in einem Variablen- oder Feldinitialisierer verwendet werden. Versuchen Sie stattdessen einen neuen Ausdruck zu verwenden.
- CS0846: Ein geschachtelter Arrayinitialisierer wird erwartet.
- CS1925: Ein Objekt vom Typ 'type' kann nicht mit einem Sammlungsinitialisierer initialisiert werden.
Diese Fehler deuten auf eine ungültige Arrayinitialisierungssyntax hin. Weitere Informationen finden Sie unter Arrays.
So erstellen Sie gültige Arrayinitialisierer:
- Verwenden Sie Arrayinitialisierer nur in Variablen- oder Felddeklarationen (CS0623). Verwenden Sie einen
newAusdruck in anderen Kontexten. - Setzen Sie geschweifte Klammern (
{und}) um Elemente oder untergeordnete Arrays (CS0846). - Stellen Sie sicher, dass der initialisierende Ausdruck mit der Anzahl der Arrays in einer gezackten Array-Initialisierung übereinstimmt.
- Verwenden Sie Sammlungsinitialisierer nur für Sammlungstypen, nicht für Arrays oder andere Typen (CS1925).
Ungültiger Sammlungsgenerator
- CS9175: Ein Ausdrucksbaum darf keinen Sammlungsausdruck enthalten.
- CS9177: Der Rückgabetyp der Generatormethode "CollectionBuilderAttribute" muss mit dem sammlungstyp übereinstimmen, der in "betterness" verwendet wird.
- CS9178: Es gibt keinen Zieltyp für den natürlichen Typ "Typ".
- CS9179: Der Sammlungsausdruckstyp muss über einen anwendbaren Konstruktor verfügen, der ohne Argumente aufgerufen werden kann.
- CS9180: Die Generatormethode "CollectionBuilderAttribute" muss eine statische Methode sein.
- CS9181: Der Generatormethodentyp 'CollectionBuilderAttribute' muss mit dem Parameter 'ReadOnlySpan<{0}>' übereinstimmen.
- CS9182: Ungültiges 'CollectionBuilderAttribute'. Für den Generatortyp '{0}' wurde keine übereinstimmende '{1}' Methode gefunden.
- CS9183: Der Rückgabetyp der 'CollectionBuilderAttribute'-Methode muss ein nicht abstrakter, nicht schnittstellenfremder Typ sein, der als "Typ" verwendet werden kann.
- CS9185: Ein statischer Typ kann nicht als Typargument verwendet werden.
-
CS9186: Der Methodenname
CollectionBuilderAttributeist ungültig. - CS9187: Es konnte keine barrierefreie 'Create'-Methode mit der erwarteten Signatur gefunden werden: eine statische Methode mit einem einzelnen Parameter vom Typ 'ReadOnlySpan<{0}>' und Rückgabetyp '{1}'.
- CS9188: "scoped" kann nicht als Modifizierer für einen Sammlungsausdruckstypparameter verwendet werden.
- CS9190: Die 'CollectionBuilderAttribute'-Methode 'builderMethod' kann nicht angewendet werden, da sie generisch ist.
- CS9192: Inlinearraykonvertierungen können nicht mit Auflistungsausdrücken verwendet werden.
- CS9193: Das Argument "Argument" wird möglicherweise nicht mit dem Schlüsselwort "ref" übergeben.
- CS9194: Das Argument 'Argument' kann nicht mit dem Schlüsselwort 'out' übergeben werden.
- CS9195: Argument 'argument' darf nicht mit dem Schlüsselwort "in" übergeben werden.
- CS9196: Die Funktion ‚collection expression‘ ist in C# ‚version‘ nicht verfügbar. Bitte verwenden Sie die Sprachversion ‚requiredVersion‘ oder höher.
- CS9197: Die Funktion ‚inline arrays‘ ist in C# ‚version‘ nicht verfügbar. Bitte verwenden Sie die Sprachversion ‚requiredVersion‘ oder höher.
- CS9198: Funktion ‚ref and unsafe in async and iterator methods‘ ist in C# ‚version‘ nicht verfügbar. Bitte verwenden Sie die Sprachversion ‚requiredVersion‘ oder höher.
- CS9199: Die Funktion ‚collection expression‘ ist in C# ‚version‘ nicht verfügbar. Bitte verwenden Sie die Sprachversion ‚requiredVersion‘ oder höher.
- CS9202: Die Funktion ‚ref readonly parameters‘ ist in C# ‚version‘ nicht verfügbar. Bitte verwenden Sie die Sprachversion ‚requiredVersion‘ oder höher.
- CS9208: Der Operator "nameof" kann nicht für einen Inlinearrayzugriff verwendet werden.
- CS9209: Eine zurückzugebende Eigenschaft "Property" kann nicht als Wertargument verwendet werden.
- CS9211: Der Ausdruck muss vom Typ "type" sein, da er durch Verweis zugewiesen wird.
- CS9212: Kann keinen Auflistungsausdruck als Wert in einer festen Anweisung verwenden
- CS9217: Ein ‚ref‘ local kann nicht über eine ‚await‘ oder ‚yield‘ Grenze hinweg erhalten werden.
- CS9218: "paramName" ist eine Referenzstruktur und kann nicht der Typ eines Parameters sein.
- CS9221: Der Typ 'type' darf weder eine Ref-Struktur sein noch ein Typparameter, der Ref-Strukturen zulässt, damit er als Parameter 'parameter' im generischen Typ oder der Methode 'member' verwendet werden kann.
- CS9223: Eine Struktur, die "ref"-Felder enthält, kann nicht in einem Auflistungsausdruck verwendet werden.
- CS9228: Nicht variable Deklaration einer Referenzstruktur ist nicht zulässig
- CS9232: Partielle Methodendeklarationen weisen Signaturunterschiede auf.
- CS9233: Der Modifizierer "Datei" kann nur für Typen verwendet werden, die in einer Kompilierungseinheit auf oberster Ebene definiert sind.
Um Sammlungsausdrücke mit Auflistungs-Generator-Attributen ordnungsgemäß zu erstellen, befolgen Sie diese Anforderungen. Weitere Informationen finden Sie unter Sammlungsausdrücke.
- Stellen Sie sicher, dass der Zieltyp über einen Iterationstyp verfügt, der
foreachunterstützt wird (CS9188). - Verwenden Sie keine generischen Typen als Sammlungs-Generator-Typen (CS9185).
- Überprüfen Sie, ob der angegebene
CollectionBuilderAttributeMethodenname gültig ist (CS9186). - Wenden Sie nur
CollectionBuilderAttributestatische Methoden an, die der erforderlichen Signatur entsprechen: Geben Sie den Sammlungstyp zurück und nehmen Sie einenReadOnlySpan<T>Parameter an, derTdem Elementtyp entspricht (CS9180, CS9181, CS9182, CS9183, CS9187, CS9190). - Stellen Sie sicher, dass der Rückgabetyp übereinstimmt und nicht abstrakt oder eine Schnittstelle (CS9177, CS9183) ist.
- Verwenden Sie keine Verweisstruktur oder Typen mit Bezugsfeldern in Auflistungsausdrücken (CS9218, CS9221, CS9223, CS9228).
- Vermeiden Sie die Verwendung von Sammlungs-Ausdrücken in Ausdrucksbäumen (CS9175).
- Verwenden Sie die richtige Sprachversion für Auflistungsausdrücke und zugehörige Features (CS9196, CS9197, CS9198, CS9199, CS9202).
Warnungen der gemeinsamen Sprachspezifikation (CLS-Warnungen)
- CS3007: Die überladene Methode 'method', die sich nur durch unbenannte Arraytypen unterscheidet, ist nicht CLS-kompatibel.
- CS3016: Arrays als Attributargumente sind nicht CLS-kompatibel.
Befolgen Sie die folgenden Richtlinien, um CLS-kompatiblen Code mit Arrays zu schreiben. Weitere Informationen finden Sie unter Sprachunabhängigkeit.
- Erstellen Sie keine überladenen Methoden, die sich nur in Arrayelementtypen (CS3007) unterscheiden.
- Verwenden Sie Arrays nicht als Attributargumente (CS3016).
Fehler CS3007 tritt auf, wenn eine überladene Methode mit einem Jagged Array vorhanden ist und die Methodensignaturen sich lediglich durch den Elementtyp des Arrays unterscheiden. Um diesen Fehler zu vermeiden, sollten Sie ein rechteckiges Array anstelle eines Jagged Array verwenden oder das Attribut CLSCompliantAttribute entfernen, sofern keine CLS-Kompatibilität erforderlich ist. Weitere Informationen zu den CLS-Konformitätsregeln finden Sie unter Sprachunabhängigkeit und sprachunabhängige Komponenten.
Fehler CS3016 gibt an, dass es nicht mit der Common Language Specification (CLS) kompatibel ist, um ein Array an ein Attribut zu übergeben. Weitere Informationen zu den CLS-Konformitätsregeln finden Sie unter Sprachunabhängigkeit und sprachunabhängige Komponenten.