Freigeben über


Beheben von Fehlern und Warnungen im Zusammenhang mit Attributdeklarationen oder Attributverwendung in Ihrem Code

In diesem Artikel werden die folgenden Compilerfehler behandelt:

  • CS0181: Der Attributkonstruktorparameter hat einen Typ, bei dem es sich nicht um einen gültigen Attributparametertyp handelt.
  • CS0243: Das attribut "Conditional" ist für "method" ungültig, da es sich um eine Außerkraftsetzungsmethode handelt.
  • CS0404: Das Attribut ist für diesen Deklarationstyp ungültig.
  • CS0415: Dieses Attribut ist nur für einen Indexer gültig, der keine explizite Memberdeklaration der Schnittstelle ist.
  • CS0416: 'type parameter': Ein Attributargument kann keine Typparameter verwenden.
  • CS0447: Attribut kann nicht mit Typargumenten verwendet werden.
  • CS0577: Das Attribut "Conditional" ist ungültig, da es sich um einen Konstruktor, einen Destruktor, einen Operator, einen Lambda-Ausdruck oder eine explizite Schnittstellenimplementierung handelt.
  • CS0578: Das attribut "Conditional" ist für "function" ungültig, da der Rückgabetyp nicht ungültig ist.
  • CS0579: Doppeltes Attribut
  • CS0582: Das attribut "Conditional" ist für Schnittstellenmember ungültig.
  • CS0592: Das Attribut ist für diesen Deklarationstyp ungültig. Sie ist nur für bestimmte Deklarationen gültig.
  • CS0609: Das Attribut kann für einen als Überschreibung markierten Indexer nicht festgelegt werden.
  • CS0616: Typ ist keine Attributklasse.
  • CS0625: Instanzfeld in Typen, die mit StructLayout(LayoutKind.Explicit) gekennzeichnet sind, müssen über ein FieldOffset-Attribut verfügen.
  • CS0629: Das bedingte Mitglied 'Mitglied' kann das Schnittstellenmitglied 'Basisklassenmitglied' im Typ 'Typname' nicht implementieren.
  • CS0636: Das FieldOffset-Attribut kann nur für Elemente von Typen platziert werden, die mit StructLayout(LayoutKind.Explicit) gekennzeichnet sind.
  • CS0637: Das FieldOffset-Attribut ist für statische oder konstische Felder nicht zulässig.
  • CS0641: Dieses Attribut ist nur für klassen gültig, die von "System.Attribute" abgeleitet wurden.
  • CS0646: Das DefaultMember-Attribut für einen Typ, der einen Indexer enthält, kann nicht angegeben werden.
  • CS0647: Fehlerausgebendes Attribut
  • CS0653: Die Attributklasse 'Class' kann nicht angewendet werden, da sie abstrakt ist.
  • CS0657: Der Speicherort ist kein gültiger Attributspeicherort für diese Deklaration. Gültige Attributspeicherorte für diese Deklaration werden aufgelistet. Alle Attribute in diesem Block werden ignoriert.
  • CS0658: Der Attributspeicherort wird nicht erkannt. Gültige Attributspeicherorte für diese Deklaration sind aufgelistet. Alle Attribute in diesem Block werden ignoriert.
  • CS0668: Zwei Indexer haben unterschiedliche Namen; das IndexerName-Attribut muss für jeden Indexer innerhalb eines Typs mit demselben Namen verwendet werden.
  • CS0685: Das bedingte Mitglied "member" kann keinen out-Parameter haben.
  • CS0735: Ungültiger Typ, der als Argument für das TypeForwardedTo-Attribut angegeben wurde
  • CS0739: Duplicate TypeForwardedToAttribute
  • CS1608: Das RequiredAttribute-Attribut ist für C#-Typen nicht zulässig.
  • CS1614: Attributname ist mehrdeutig. Verwenden Sie entweder "@name" oder fügen Sie explizit das Suffix "Attribut" ein.
  • CS1618: Delegate kann nicht mit der Methode erstellt werden, da sie oder eine Methode, die sie überschreibt, ein bedingtes Attribut hat.
  • CS1667: Das Attribut ist für Eigenschaften- oder Ereignisaccessoren ungültig. Sie ist nur für bestimmte Deklarationen gültig.
  • CS1689: Attribut ist nur für Methoden oder Attributklassen gültig.
  • CS7014: Attribute sind in diesem Kontext ungültig.
  • CS7046: Der Attributparameter muss angegeben werden.
  • CS7047: Der Attributparameter 'parameter1' oder 'parameter2' muss angegeben werden.
  • CS7067: Attributkonstruktorparameter ist optional, aber es wurde kein Standardwert angegeben.
  • CS8959: CallerArgumentExpressionAttribute kann nicht angewendet werden, da es keine Standardkonvertierungen von Typ1 in Typ2 gibt.
  • CS8960: Das CallerArgumentExpressionAttribute, das auf den Parameter angewendet wird, hat keine Auswirkung. Es wird vom CallerLineNumberAttribute überschrieben.
  • CS8961: Das CallerArgumentExpressionAttribute, das auf den Parameter angewendet wird, hat keine Auswirkung. Es wird vom CallerFilePathAttribute überschrieben.
  • CS8962: Das auf den Parameter angewendete CallerArgumentExpressionAttribute hat keine Auswirkung. Sie wird vom CallerMemberNameAttribute überschrieben.
  • CS8963: Das callerArgumentExpressionAttribute, das auf den Parameter angewendet wird, hat keine Auswirkung. Sie wird mit einem ungültigen Parameternamen angewendet.
  • CS8968: Ein Attributtypargument kann keine Typparameter verwenden.
  • CS8970: Typ kann in diesem Kontext nicht verwendet werden, da er nicht in Metadaten dargestellt werden kann.
  • CS9331: Attribut kann nicht manuell angewendet werden.

Attributargumente und Parameter

Es werden die folgenden Fehler angezeigt, wenn Sie Attributargumente oder Parameter falsch verwenden:

  • CS0181: Der Attributkonstruktorparameter hat einen Typ, bei dem es sich nicht um einen gültigen Attributparametertyp handelt.
  • CS0416: 'type parameter': Ein Attributargument kann keine Typparameter verwenden.
  • CS0447: Attribut kann nicht mit Typargumenten verwendet werden.
  • CS0647: Fehlerausgebendes Attribut
  • CS7046: Der Attributparameter muss angegeben werden.
  • CS7047: Der Attributparameter 'parameter1' oder 'parameter2' muss angegeben werden.
  • CS7067: Attributkonstruktorparameter ist optional, aber es wurde kein Standardwert angegeben.
  • CS8968: Ein Attributtypargument kann keine Typparameter verwenden.
  • CS8970: Typ kann in diesem Kontext nicht verwendet werden, da er nicht in Metadaten dargestellt werden kann.

Um diese Fehler zu beheben, befolgen Sie die folgenden Regeln:

  • Attributkonstruktorparameter müssen gültige Attributparametertypen (CS0181) verwenden. Die C#-Sprachspezifikation beschränkt Attributparametertypen auf primitive Typen (bool, byte, char, double, float, int, long, short und string), object, System.Type, Aufzählungstypen und eindimensionale Arrays dieser Typen. Funktionszeiger und andere Typen, die in Metadaten nicht dargestellt werden können, sind keine gültigen Attributparametertypen.
  • Attributargumente müssen Konstantenwerte für die Kompilierungszeit sein, sodass Sie Typparameter nicht als Attributargumente (CS0416) verwenden können. Der Compiler muss Attributargumente zur Kompilierungszeit auflösen, und Typparameter werden erst bekannt, wenn der generische Typ erstellt wird.
  • Typargumente können nicht auf ein nicht generisches Attribut (CS0447) angewendet werden. Wenn eine Attributklasse nicht generisch ist, kann ihre Verwendung keine Typargumente in spitzen Klammern enthalten.
  • Alle an einen Attributkonstruktor übergebenen Werte müssen korrekt formatiert sein und innerhalb des gültigen Bereichs für jeden Parameter (CS0647). Beispielsweise erfordert eine GuidAttribute gültige GUID-Formatzeichenfolge.
  • Sie müssen alle erforderlichen Attributparameter angeben, wenn Sie das Attribut anwenden (CS7046, CS7047). Überprüfen Sie die Konstruktorsignatur des Attributs, um zu bestimmen, welche Parameter obligatorisch sind, und geben Sie gültige Argumente für jeden Parameter an.
  • Wenn Sie ein benutzerdefiniertes Attribut mit optionalen Konstruktorparametern definieren, geben Sie Standardwerte für diese Parameter an (CS7067). Verwenden Sie die Syntax parameterType parameterName = defaultValue im Attributkonstruktor, damit Aufrufer diese Argumente weglassen können.
  • Generische Attributtypargumente müssen konkrete Typen sein, keine Typparameter (CS8968). Der Compiler muss generische Attributtypargumente zur Kompilierungszeit vollständig bestimmen, sodass offene Typparameter nicht zulässig sind.
  • Typen, die als Attributargumente verwendet werden, müssen in Metadaten (CS8970) dargestellt werden. Einige konstruierte Typen, z. B. solche, die dynamic oder bestimmte Tupelelementnamen verwenden, können nicht in Metadaten codiert werden und sind nicht als Attributtypargumente zulässig.

Weitere Informationen finden Sie im Abschnitt "Attribute", " Generics" und im Abschnitt "C#-Sprachspezifikation" zu Attributen.

Hinweis

CS0447 und CS0647 sind veraltet. Der aktuelle Compiler gibt diese Fehler nicht aus.

Attributklassenanforderungen

Beim Definieren von Attributklassen, die nicht den erforderlichen Einschränkungen entsprechen, werden die folgenden Fehler angezeigt:

  • CS0404: Das Attribut ist für diesen Deklarationstyp ungültig.
  • CS0579: Doppeltes Attribut
  • CS0616: Typ ist keine Attributklasse.
  • CS0641: Dieses Attribut ist nur für klassen gültig, die von "System.Attribute" abgeleitet wurden.
  • CS0653: Die Attributklasse 'Class' kann nicht angewendet werden, da sie abstrakt ist.
  • CS1614: Attributname ist mehrdeutig. Verwenden Sie entweder "@name" oder explizit das Suffix "Attribut".

Um diese Fehler zu beheben, befolgen Sie die folgenden Regeln:

  • Anwenden von Attributen nur auf Deklarationstypen AttributeUsageAttribute , die das Attribut zulässt (CS0404). Überprüfen Sie den AttributeTargets im Attribut AttributeUsage angegebenen Wert, um festzustellen, welche Ziele gültig sind.
  • Wenn Sie dasselbe Attribut mehrmals auf ein einzelnes Ziel anwenden, entfernen Sie das Duplikat oder setzen Sie AllowMultiple = true im Attribut AttributeUsageAttribute fest (CS0579). Standardmäßig können Attribute nur einmal für jedes Ziel angezeigt werden.
  • Der Typ, der in der Attributsyntax verwendet wird, muss von System.Attribute erben (CS0616). Nur von abgeleiteten System.Attribute Klassen können als Attribute verwendet werden. Andere Typen verursachen diesen Fehler auch dann, wenn sie einen ähnlichen Namen haben.
  • Sie können AttributeUsageAttribute nur auf Klassen anwenden, die von Attribute (CS0641) abgeleitet werden. Das AttributeUsage Attribut steuert, wie andere Attribute verwendet werden, und ist selbst auf Attributklassen beschränkt.
  • Attributklassen können nicht sein abstract , da der Compiler sie instanziieren muss (CS0653). Entfernen Sie den abstract Modifizierer aus der Attributklasse, oder leiten Sie eine konkrete Klasse von der abstrakten Basis ab.
  • Wenn sowohl Example- als auch ExampleAttribute-Attributklassen vorhanden sind, kann der Compiler nicht bestimmen, auf welche [Example] verwiesen wird (CS1614). Disambiguieren Sie, indem Sie [@Example] für den kürzeren Namen oder [ExampleAttribute] für den längeren Namen nutzen.

Weitere Informationen finden Sie im Abschnitt " Erstellen von benutzerdefinierten Attributen " und im Abschnitt "C#-Sprachspezifikation" zu Attributen.

Attribut-Standortkontext

Die folgenden Fehler treten auf, wenn Sie Attribute an ungültigen Speicherorten anwenden oder falsche Zielbezeichner verwenden:

  • CS0592: Das Attribut ist für diesen Deklarationstyp ungültig. Sie ist nur für bestimmte Deklarationen gültig.
  • CS0657: Der Speicherort ist kein gültiger Attributspeicherort für diese Deklaration. Gültige Attributspeicherorte für diese Deklaration werden aufgelistet. Alle Attribute in diesem Block werden ignoriert.
  • CS0658: Speicherort ist kein erkannter Attributspeicherort. Gültige Attributspeicherorte für diese Deklaration werden aufgelistet. Alle Attribute in diesem Block werden ignoriert.
  • CS1667: Das Attribut ist für Eigenschaften- oder Ereignisaccessoren ungültig. Sie ist nur für bestimmte Deklarationen gültig.
  • CS7014: Attribute sind in diesem Kontext ungültig.

Um diese Fehler zu beheben, befolgen Sie diese Regeln. Weitere Informationen finden Sie im Abschnitt "Attributziele " und im Abschnitt "C#-Sprachspezifikation" zur Attributspezifikation.

  • Jedes Attribut AttributeUsageAttribute gibt an, auf welche Deklarationstypen es ausgerichtet ist. Sie müssen das Attribut nur auf diese Typen (CS0592) anwenden. Sie können ein Attribut, das mit AttributeTargets.Interface definiert ist, nicht auf eine Klasse anwenden.
  • Wenn Sie einen Attributzielbezeichner verwenden, method: z. B. oder property:, muss der Bezeichner für die Deklaration gültig sein, in der er angezeigt wird (CS0657). Überprüfen Sie die Fehlermeldung, um festzustellen, welche Zielbezeichner für die spezifische Deklaration zulässig sind.
  • Der verwendete Attributzielbezeichner ist kein erkannter Bezeichner (CS0658). Gültige Bezeichner sind : assembly:, module:, , type:method:, , property:field:, , event:, und param:return:.
  • Einige Attribute, wie z. B. ObsoleteAttribute und CLSCompliantAttribute, sind für Eigenschafts- oder Ereigniszugriffsmodifikatoren (CS1667) nicht gültig. Verschieben Sie das Attribut vom Accessor in die Deklaration der Eigenschaft oder des Ereignisses selbst.
  • Attribute können nur für Programmelemente angezeigt werden, die sie unterstützen (CS7014). Wenn Sie Attribute auf Assembly- oder Modulebene anwenden, verwenden Sie die assembly: oder module: die Zielbezeichner, und platzieren Sie sie am Anfang der Datei.

Vordefinierte Attribute

Die folgenden Fehler treten auf, wenn Sie bestimmte vordefinierte .NET-Attribute falsch verwenden:

  • CS0415: Dieses Attribut ist nur für einen Indexer gültig, der keine explizite Memberdeklaration der Schnittstelle ist.
  • CS0609: Das Attribut kann bei einem als override markierten Indexer nicht festgelegt werden.
  • CS0625: Instanzfeld in Typen, die mit StructLayout(LayoutKind.Explicit) gekennzeichnet sind, müssen über ein FieldOffset-Attribut verfügen.
  • CS0636: Das FieldOffset-Attribut kann nur für Elemente von Typen platziert werden, die mit StructLayout(LayoutKind.Explicit) gekennzeichnet sind.
  • CS0637: Das FieldOffset-Attribut ist für statische oder konstische Felder nicht zulässig.
  • CS0646: Das DefaultMember-Attribut für einen Typ, der einen Indexer enthält, kann nicht angegeben werden.
  • CS0668: Zwei Indexer haben unterschiedliche Namen; das IndexerName-Attribut muss für jeden Indexer innerhalb eines Typs mit demselben Namen verwendet werden.
  • CS0735: Ungültiger Typ, der als Argument für das TypeForwardedTo-Attribut angegeben wurde
  • CS0739: Duplicate TypeForwardedToAttribute
  • CS1608: Das RequiredAttribute-Attribut ist für C#-Typen nicht zulässig.
  • CS9331: Attribut kann nicht manuell angewendet werden.

Um diese Fehler zu beheben, befolgen Sie diese Regeln. Weitere Informationen finden Sie unter Indexer, Strukturtypen und Platform Invoke (P/Invoke).For more information, see Indexers, Structure types, TypeForwardedToAttribute, and Platform Invoke (P/Invoke).

  • Das IndexerNameAttribute kann nur auf Indexer angewendet werden, die keine expliziten Schnittstellenmitgliedsdeklarationen (CS0415) sind. Entfernen Sie das Attribut aus expliziten Schnittstellenindexern, da die Schnittstelle bereits den Indexernamen definiert.
  • Sie können IndexerName nicht auf Indexer anwenden, die mit override gekennzeichnet sind, da Überschreibungsindexer ihren Namen von der Basisklasse (CS0609) erben. Entfernen Sie das IndexerName Attribut aus dem Überschreibindexer.
  • Jedes Instanzfeld in einem mit StructLayout(LayoutKind.Explicit) gekennzeichneten Typ muss ein FieldOffsetAttribute aufweisen (CS0625). Für das explizite Layout müssen Sie den Byteoffset für jedes Instanzfeld angeben.
  • Die FieldOffsetAttribute kann nur auf Mitglieder von Typen angewendet werden, die StructLayoutAttribute auf LayoutKind.Explicit gesetzt haben (CS0636). Fügen Sie das StructLayout-Attribut der enthaltenden Typdeklaration hinzu.
  • Das Attribut FieldOffset ist bei den Feldern static oder const nicht zulässig, da das explizite Layout nur für Instanzfelder (CS0637) gilt. Entfernen Sie das FieldOffset Attribut aus dem statischen Feld oder dem Feld "Const".
  • Sie können nicht auf einen Typ anwenden DefaultMemberAttribute , der bereits einen Indexer enthält, da der Compiler automatisch das Standardelement für Typen mit Indexern (CS0646) definiert. Entfernen Sie das DefaultMember Attribut.
  • Alle IndexerNameAttribute Attribute innerhalb eines Typs müssen denselben Namen (CS0668) angeben. Ändern Sie die Namen, damit sie übereinstimmen, da die Laufzeit einen einzelnen Namen für alle Indexer eines Typs verwendet.
  • Der als Argument TypeForwardedToAttribute angegebene Typ muss ein nicht generischer, nicht geschachtelter, nicht zeigerfreier, nicht arraybasierter Typ (CS0735) sein. Nur benannte Typen der obersten Ebene sind gültige Weiterleitungsziele.
  • Eine Assembly kann nur einen TypeForwardedToAttribute für jeden externen Typ (CS0739) aufweisen. Suchen und entfernen Sie die duplizierte TypeForwardedTo Deklaration.
  • Das RequiredAttributeAttribute ist nicht für Typen zulässig, die in C# (CS1608) definiert sind. Dieses Attribut ist für andere Sprachen reserviert, die erzwingen müssen, dass compiler ein bestimmtes Feature benötigen.
  • Einige Attribute sind für den Compiler reserviert und können nicht manuell im Quellcode (CS9331) angewendet werden. Ersetzen Sie das Attribut durch die entsprechende C#-Sprachsyntax, die dazu führt, dass der Compiler es generiert.

Bedingte Attributverwendung

Es werden die folgenden Fehler angezeigt, wenn Sie die ConditionalAttribute auf eine Weise anwenden, die gegen dessen Nutzungseinschränkungen verstößt.

  • CS0243: Das attribut "Conditional" ist für "method" ungültig, da es sich um eine Außerkraftsetzungsmethode handelt.
  • CS0577: Das Attribut "Conditional" ist ungültig, da es sich um einen Konstruktor, einen Destruktor, einen Operator, einen Lambda-Ausdruck oder eine explizite Schnittstellenimplementierung handelt.
  • CS0578: Das attribut "Conditional" ist für "function" ungültig, da der Rückgabetyp nicht ungültig ist.
  • CS0582: Das Conditional-Attribut ist für Schnittstellenmitglieder ungültig.
  • CS0629: Bedingtes Mitglied "member" kann das Schnittstellenmitglied "Basisklassenmitglied" im Typ "Typname" nicht implementieren.
  • CS0685: Bedingte Member "member" können keinen Ausgabeparameter haben.
  • CS1618: Kann keinen Delegat mit der Methode erstellen, da diese oder eine überschriebene Methode ein bedingtes Attribut hat
  • CS1689: Attribut ist nur für Methoden oder Attributklassen gültig.

Um diese Fehler zu beheben, befolgen Sie diese Regeln. Weitere Informationen finden Sie unter ConditionalAttribute" Bedingte Methoden und Attribute".

  • Der Compiler bindet Aufrufe an die Basismethodendeklaration, nicht an die Außerkraftsetzung, sodass Sie das Conditional Attribut nicht auf Außerkraftsetzungsmethoden (CS0243) anwenden können. Entfernen Sie das Conditional Attribut aus der Außerkraftsetzungsmethode, oder entfernen Sie das override Schlüsselwort.
  • Das Conditional Attribut ist für Konstruktoren, Finalizer, Operatoren, Lambda-Ausdrücke oder explizite Schnittstellenimplementierungen (CS0577) nicht gültig. Diese Membertypen können nicht bedingt weggelassen werden, da sie über erforderliche Rollen im Lebenszyklus oder Vertrag des Typs verfügen.
  • Bedingte Methoden müssen void zurückgeben, da der Compiler den Aufruf möglicherweise vollständig auslassen kann und kein Rückgabewert für den Aufrufer (CS0578) verfügbar wäre. Ändern Sie den Rückgabetyp der Methode in void, oder entfernen Sie das Conditional Attribut.
  • Schnittstellenmitglieder können nicht bedingt sein, da alle Schnittstellenmitglieder implementiert werden müssen (CS0582). Entfernen Sie das Conditional Attribut aus der Schnittstellenelementdeklaration.
  • Methoden, die Schnittstellenmember implementieren, können nicht konditional sein, da der Schnittstellenvertrag erfordert, dass sie in allen Builds (CS0629) vorhanden sind. Entfernen Sie das Conditional Attribut aus der Implementierungsmethode.
  • Bedingte Methoden können keine Parameter enthalten out , da der out Variablenwert nicht definiert wäre, wenn der Compiler den Methodenaufruf ausgelassen (CS0685). Entfernen Sie die out Parameter aus der Methode, oder entfernen Sie das Conditional Attribut.
  • Sie können keinen Delegaten erstellen, der auf eine bedingte Methode verweist, da die Methode möglicherweise nicht in Builds vorhanden ist, in denen das Bedingungssymbol nicht definiert ist (CS1618). Entfernen Sie das Conditional Attribut aus der Methode, oder verwenden Sie es nicht als Stellvertretungsziel.
  • Das Conditional Attribut ist nur für Methoden und Attributklassen (CS1689) gültig. Sie ist für andere Deklarationstypen wie Nicht-Attributklassen, Strukturen oder Schnittstellen nicht gültig.

Verwendung des CallerArgumentExpression-Attributs

Die folgenden Fehler treten auf, wenn Sie CallerArgumentExpressionAttribute falsch anwenden oder wenn es zu Konflikten mit anderen Attributen der Anruferinformationen kommt:

  • CS8959: CallerArgumentExpressionAttribute kann nicht angewendet werden, da es keine Standardkonvertierungen von Typ1 in Typ2 gibt.
  • CS8960: Das CallerArgumentExpressionAttribute, das auf den Parameter angewendet wird, wird keine Wirkung haben. Es wird vom CallerLineNumberAttribute überschrieben.
  • CS8961: Das CallerArgumentExpressionAttribute, das auf den Parameter angewendet wird, hat keine Auswirkung. Es wird vom CallerFilePathAttribute überschrieben.
  • CS8962: Das auf den Parameter angewendete CallerArgumentExpressionAttribute hat keine Auswirkung. Sie wird vom CallerMemberNameAttribute überschrieben.
  • CS8963: Das callerArgumentExpressionAttribute, das auf den Parameter angewendet wird, hat keine Auswirkung. Sie wird mit einem ungültigen Parameternamen angewendet.

Um diese Fehler zu beheben, befolgen Sie diese Regeln. Weitere Informationen finden Sie unter Attribute für Anruferinformationen und CallerArgumentExpressionAttribute.

  • Der mit CallerArgumentExpression dekorierte Parameter muss den Typ string oder einen Typ aufweisen, der standardmäßig von string konvertiert werden kann, da das Attribut eine string Darstellung des Argumentausdrucks des Aufrufers (CS8959) einfügt. Ändern Sie den Parametertyp in string oder einen kompatiblen Typ.
  • Das CallerArgumentExpression-Attribut hat keine Auswirkungen auf einen Parameter, der auch CallerLineNumberAttribute, CallerFilePathAttribute, oder CallerMemberNameAttribute (CS8960, CS8961, CS8962) hat. Diese Aufruferinformationenattribute haben Vorrang, entfernen Sie daher das CallerArgumentExpression Attribut aus dem Parameter.
  • Das an den CallerArgumentExpression Konstruktor übergebene Zeichenfolgenargument muss mit dem Namen eines anderen Parameters in derselben Methodensignatur (CS8963) übereinstimmen. Wenn der Parametername falsch geschrieben ist oder auf einen nicht vorhandenen Parameter verweist, hat das Attribut keine Auswirkung.