Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kompilatorn genererar följande fel när det inte finns något argument för en formell parameter, eller om argumentet inte är giltigt för den parametern:
-
CS0182: Ett attributargument måste vara ett konstant uttryck,
typeofuttryck eller matrisskapande uttryck av en attributparametertyp - CS0591: Ogiltigt värde för argument till attribut
- CS0599: Ogiltigt värde för det namngivna attributargumentet "argument"
- CS0617: Inte ett giltigt namngivet attributargument. Namngivna attributargument måste vara fält som inte är skrivskyddade, statiska eller konstant, eller läsochskriv-egenskaper som är offentliga och inte statiska.
- CS0633: Argumentet till attributet måste vara en giltig identifierare
- CS0643: Duplicera namngivet attributargument
- CS0655: Inte ett giltigt namngivet attributargument eftersom det inte är en giltig attributparametertyp
- CS0839: Argumentet saknas.
- CS1016: Namngivet attributargument förväntas
- CS1739: Den bästa överlagringen för har inte en parameter med namnet
- CS1740: Namngivet argument kan inte anges flera gånger
- CS1742: En matrisåtkomst kanske inte har någon namngiven argumentspecificerare
- CS1744: Namngivet argument anger en parameter för vilken ett positionsargument redan har angetts
- CS1746: Delegaten har ingen parameter med namnet "name"
- CS7036: Det finns inget argument som motsvarar den obligatoriska parametern
- CS7067: Attributkonstruktorparametern är valfri, men inget standardparametervärde har angetts.
- CS8324: Namngivna argumentspecifikationer måste visas när alla fasta argument har angetts i ett dynamiskt anrop.
- CS8905: En funktionspekare kan inte anropas med namngivna argument.
- CS8943: null är inte ett giltigt parameternamn. Om du vill få åtkomst till mottagaren av en instansmetod använder du den tomma strängen som parameternamn.
- CS8944: Metoden är inte en instansmetod, mottagaren kan inte vara ett interpolerat stränghanterarargument.
- CS8945: Inte ett giltigt parameternamn.
-
CS8948:
InterpolatedStringHandlerArgumentAttributeargument kan inte referera till parametern som attributet används på. -
CS8949: Den
InterpolatedStringHandlerArgumentAttributetillämpade parametern är felaktigt formaterad och kan inte tolkas. Konstruera en instans av den manuellt. - CS8950: Parametern är ett argument till den interpolerade stränghanterarkonverteringen för parametern, men motsvarande argument anges efter det interpolerade stränguttrycket. Ändra ordning på argumenten.
- CS8951: Parametern tillhandahålls inte uttryckligen, men används som ett argument till den interpolerade stränghanterarkonverteringen för parametern.
-
CS8964: Får
CallerArgumentExpressionAttributeendast tillämpas på parametrar med standardvärden -
CS8965: Den
CallerArgumentExpressionAttributetillämpade parametern har ingen effekt eftersom den är självrefererande. -
CS8966: Kommer
CallerArgumentExpressionAttributeinte att ha någon effekt eftersom den gäller för en medlem som används i kontexter som inte tillåter valfria argument
Argument saknas
Följande allmänna fel utfärdas när kompilatorn inte kan matcha argument med alla medlemsparametrar:
- CS0839: Argumentet saknas.
- CS7036: Det finns inget argument som motsvarar den obligatoriska parametern
Dessa fel är allmänna: Kompilatorn kan inte matcha argumenten som anges i ett metodanrop till de obligatoriska parametrarna för metoden. Kontrollera följande orsaker:
- Se till att du har inkluderat alla nödvändiga argument.
- Kontrollera att argumenten är i rätt ordning.
- Kontrollera att alla argument är av rätt typ.
- Kontrollera att reglerna för överlagringslösning har valt den metod du förväntade dig.
Du kan också se CS7036 om du skrev överlagrade lokala funktioner. Lokala funktioner kan inte överbelastas. Kompilatorn känner bara igen den första lokala funktionen med det namnet. Kontrollera om du tänkte anropa en annan lokal funktion.
Dessa fel visas ofta med annan diagnostik som kan hjälpa dig att diagnostisera rätt orsak.
Argument för attribut
Kompilatorn utfärdar dessa fel när ett argument till en attributkonstruktor är felaktigt:
-
CS0182: Ett attributargument måste vara ett konstant uttryck,
typeofuttryck eller matrisskapande uttryck av en attributparametertyp - CS0591: Ogiltigt värde för argument till attribut
- CS0599: Ogiltigt värde för det namngivna attributargumentet "argument"
- CS0617: Inte ett giltigt namngivet attributargument. Namngivna attributargument måste vara fält som inte är skrivskyddade, statiska eller beständiga, eller egenskaper som kan läsas och skrivas, är offentliga och inte statiska.
- CS0633: Argumentet till attributet måste vara en giltig identifierare
- CS0643: Duplicera namngivet attributargument
- CS0655: inte ett giltigt namngivet attributargument eftersom det inte är en giltig attributparametertyp
Om du använder attributdefinitionen System.AttributeUsageAttribute kontrollerar du att de tillåtna värdena inte är ömsesidigt uteslutande. Kontrollera att typen och ordningen på argumenten till attributet är korrekta. Kontrollera att texten i strängargumenten är giltig. För många attribut måste argumentet vara en giltig C#-identifierare. Argument till attributkonstruktorer måste vara kompileringstidkonstanter. Därför är de begränsade till typer som stöder literalkonstanter. Dessutom tillåts inte följande typer som tillåter literalkonstanter som attributparametrar:
Du kan inte ange upprepade namngivna argument med samma parameternamn. Du kan bara ange tillgängliga egenskaper när du initierar ett attribut. Du kan inte ange privata egenskaper.
Namngivna och valfria parametrar och argument
Kompilatorn utfärdar följande fel för felaktig användning av namngivna och valfria argument:
- CS1016: Namngivet attributargument förväntas
- CS1739: Den bästa överlagringen för har inte en parameter med namnet
- CS1740: Namngivet argument kan inte anges flera gånger
- CS1742: En matrisåtkomst kanske inte har någon namngiven argumentspecificerare
- CS1744: Namngivet argument anger en parameter för vilken ett positionsargument redan har angetts
- CS1746: Delegaten har inte en parameter med ett namn "name"
- CS7067: Attributkonstruktorparametern är valfri, men inget standardparametervärde har angetts.
- CS8324: Namngivna argumentspecifikationer måste visas när alla fasta argument har angetts i ett dynamiskt anrop.
- CS8905: En funktionspekare kan inte anropas med namngivna argument.
Kontrollera följande orsaker till dessa fel:
- Parameternamnet för det namngivna argumentet är felaktigt.
- Den valda överbelastningen har ingen parameter som matchar det namngivna argumentet.
- Ett parameternamn upprepas på fler än ett argument.
- Ett positionellt argument (namnlöst) visas efter namngivna argument.
- Namngivna argument tillåts inte för matrisindexparametrar.
Interpolerad stränghanterare
Kompilatorn utfärdar följande fel när du angav en interpolerad stränghanterare felaktigt.
- CS8943: null är inte ett giltigt parameternamn. Om du vill få åtkomst till mottagaren av en instansmetod använder du den tomma strängen som parameternamn.
- CS8944: Inte en instansmetod, mottagaren kan inte vara ett interpolerat stränghanterarargument.
- CS8945: Inte ett giltigt parameternamn.
-
CS8948:
InterpolatedStringHandlerArgumentAttributeargument kan inte referera till parametern som attributet används på. -
CS8949: Den
InterpolatedStringHandlerArgumentAttributetillämpade parametern är felaktigt formaterad och kan inte tolkas. Konstruera en instans manuellt. - CS8950: Parametern är ett argument till den interpolerade stränghanterarkonverteringen för parametern, men motsvarande argument anges efter det interpolerade stränguttrycket.
- CS8951: Parametern tillhandahålls inte uttryckligen, men används som ett argument till den interpolerade stränghanterarkonverteringen för parametern.
En interpolerad stränghanterare är en mönsterbaserad konstruktion. Det är viktigt att få mönstret korrekt. Läs avsnittet C#-språkspecifikation om anpassade interpolerade stränguttryckshanterare eller följ självstudien om hur du skapar en interpolerad stränghanterare.
Information för felsökning av anrop
Kompilatorn utfärdar följande fel vid felaktig användning av System.Runtime.CompilerServices.CallerArgumentExpressionAttribute:
-
CS8964: Får
CallerArgumentExpressionAttributeendast tillämpas på parametrar med standardvärden
Kompilatorn utfärdar dessutom följande varningar om felaktig användning av CallerArgumentExpressionAttribute:
-
CS8965: Den
CallerArgumentExpressionAttributetillämpade parametern har ingen effekt eftersom den är självrefererande. -
CS8966: Kommer
CallerArgumentExpressionAttributeinte att ha någon effekt eftersom den gäller för en medlem som används i kontexter som inte tillåter valfria argument
Alla parametrar som har kommenterats med CallerArgumentExpression attributet måste ha ett standardvärde.