Anteckning
Å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.
Fel och varningar relaterade till tilläggsmetoder som deklarerats med
-
CS1100: Metoden har en parametermodifierare som
this
inte finns på den första parametern -
CS1101: Parametermodifieraren '
ref
' kan inte användas med 'this
'. -
CS1102: Parametermodifieraren '
out
' kan inte användas med 'this
'. - CS1103: Den första parametern för en tilläggsmetod kan inte vara av pekartyp.
- CS1105: Tilläggsmetoderna måste vara statiska.
- CS1106: Tilläggsmetoder måste definieras i en icke-generisk statisk klass.
- CS1109: Tilläggsmetoder måste definieras i statiska klasser på översta nivån, "namn" är en kapslad klass.
- CS1110: Det går inte att definiera ett nytt tillägg eftersom det inte går att hitta den nödvändiga kompilatorns typ ExtensionAttribute . Saknar du en referens till System.Core.dll?
-
CS1112: Använd inte .ExtensionAttribute Använd nyckelordet "
this
" i stället. - CS1113: Tilläggsmetod som definierats för en värdetyp kan inte användas för att skapa ombud.
- CS1743: Det går inte att ange ett standardvärde för parametern "this".
- CS9281: Tilläggsdeklarationer kanske inte har något namn.
- CS9282: Tilläggsdeklarationer kan endast innehålla metoder eller egenskaper.
- CS9283: Tillägg måste deklareras i en statisk klass på toppnivå, icke-generisk.
- CS9284: Mottagarparametern för ett tillägg kan inte ha ett standardvärde.
- CS9285: En tilläggscontainer kan bara ha en mottagarparameter.
- CS9287: En mottagarparameter får inte ha samma namn som en containertypsparameter för tillägg.
- CS9288: En parameter, lokal variabel eller lokal funktion kan inte ha samma namn som en containertypsparameter för tillägget.
- CS9289: Parametern för medlemstyp har samma namn som en containertypsparameter för tilläggscontainer.
- CS9290: En parameter, lokal variabel eller lokal funktion kan inte ha samma namn som en tilläggsparameter.
-
CS9291: "
value
": ett automatiskt genererat parameternamn står i konflikt med ett tilläggsparameternamn. - CS9292: En typparameter har samma namn som en tilläggsparameter.
- CS9293: Det går inte att använda en tilläggsparameter i den här kontexten.
-
CS9294: "
value
": Ett automatiskt genererat parameternamn står i konflikt med ett parameternamn av tilläggstyp. - CS9295: Den utökade typen måste referera till alla typparametrar som deklareras av tillägget, men en typparameter refereras inte.
-
CS9300: Mottagarparametern för
ref
ett tilläggsblock måste vara en värdetyp eller en allmän typ som är begränsad till struct. -
CS9301: Mottagarparametern "
in
" eller "ref readonly
" för tillägget måste vara en konkret (icke-generisk) värdetyp. - CS9302: ny skyddad medlem deklarerad i ett tilläggsblock.
- CS9303: Det går inte att deklarera instansmedlemmar i ett tilläggsblock med en namnlös mottagarparameter.
- CS9304: Det går inte att deklarera init-only-åtkomster i ett tilläggsblock.
- CS9305: Det går inte att använda modifierare på den namnlösa mottagarparametern för tilläggsblocket.
Vanliga fel i tilläggsdeklarationer
Kompilatorn genererar dessa fel när du bryter mot regler som gäller för alla medlemsdeklarationer för tillägg, oavsett vilken syntax som valts:
-
CS1102: Parametermodifieraren '
out
' kan inte användas med 'this
'. - CS1106: Tilläggsmetoder måste definieras i en icke-generisk statisk klass.
- CS1103: Den första parametern för en tilläggsmetod kan inte vara av pekartyp.
- CS1109: Tilläggsmetoder måste definieras i statiska klasser på översta nivån, "namn" är en kapslad klass.
- CS1113: Tilläggsmetod som definierats för en värdetyp kan inte användas för att skapa ombud.
- CS1743: Det går inte att ange ett standardvärde för parametern "this".
- CS9283: Tillägg måste deklareras i en statisk klass på toppnivå, icke-generisk.
- CS9284: Mottagarparametern för ett tillägg kan inte ha ett standardvärde.
- CS9285: En tilläggscontainer kan bara ha en mottagarparameter.
Alla tilläggsdeklarationer måste följa dessa regler:
- Dess innehållande typ (
class
ellerstruct
) måste vara icke-generisk ochstatic
. - Dess innehållande typ måste vara en översta nivås typ. Den kan inte inbäddas i en annan typ.
- Medlemmar som utökar en instans av en värdetyp kan inte konverteras till delegater.
- Mottagarparametern kan inte innehålla
out
parametermodifieraren. - Mottagarparametern kan inte ha ett standardargumentvärde.
- Pekartyper kan inte utökas. Med andra ord kan parametern som du tillämpar modifieraren på
this
inte vara en pekartyp.
Fel relaterade till deklarationer av tilläggsblock
Dessa fel är specifika för tilläggsblock, en C# 14-funktion. Tilläggsblock deklareras med nyckelordet extension
i en statisk klass. Deklarerar extension
mottagarens typ och namn. Alla medlemmar i blocket som deklareras med extension
är tilläggsmedlemmar för mottagaren:
- CS9281: Tilläggsdeklarationer kanske inte har något namn.
- CS9282: Tilläggsdeklarationer kan endast innehålla metoder eller egenskaper.
- CS9287: En mottagarparameter får inte ha samma namn som en containertypsparameter för tillägg.
- CS9288: En parameter, lokal variabel eller lokal funktion kan inte ha samma namn som en containertypsparameter för tillägget.
- CS9289: Parametern för medlemstyp har samma namn som en containertypsparameter för tilläggscontainer.
- CS9290: En parameter, lokal variabel eller lokal funktion kan inte ha samma namn som en tilläggsparameter.
-
CS9291: "
value
": ett automatiskt genererat parameternamn står i konflikt med ett tilläggsparameternamn. - CS9292: En typparameter har samma namn som en tilläggsparameter.
- CS9293: Det går inte att använda en tilläggsparameter i den här kontexten.
-
CS9294: "
value
": Ett automatiskt genererat parameternamn står i konflikt med ett parameternamn av tilläggstyp. - CS9295: Den utökade typen måste referera till alla typparametrar som deklareras av tillägget, men en typparameter refereras inte.
-
CS9300: Mottagarparametern för
ref
ett tilläggsblock måste vara en värdetyp eller en allmän typ som är begränsad till struct. -
CS9301: Mottagarparametern "
in
" eller "ref readonly
" för tillägget måste vara en konkret (icke-generisk) värdetyp. - CS9302: ny skyddad medlem deklarerad i ett tilläggsblock.
- CS9303: Det går inte att deklarera instansmedlemmar i ett tilläggsblock med en namnlös mottagarparameter.
- CS9304: Det går inte att deklarera init-only-åtkomster i ett tilläggsblock.
- CS9305: Det går inte att använda modifierare på den namnlösa mottagarparametern för tilläggsblocket.
Tilläggsdeklarationer måste följa dessa regler:
- Tillägget kan inte innehålla en namntoken. Tillägget deklarerar endast mottagaren.
- Mottagarparametern kan inte ha ett standardvärde.
Tilläggsmedlemmar som deklareras i ett tilläggsblock måste följa dessa regler, utöver de vanliga reglerna:
- Endast metoder och egenskaper är giltiga tilläggsmedlemstyper. Tilläggsmedlemmar kan utöka en instans eller en typ.
- Tillägget måste ange ett parameternamn för mottagaren för att kunna innehålla medlemmar som utökar en instans.
- Namnet på mottagarparametern måste vara unikt i tilläggsblocket.
- Alla tilläggsmedlemmar måste använda alla typparametrar som deklarerats i tillägget. De kan lägga till fler typparametrar.
Fel som rör utökningsmetoder för this
parametrar
Dessa fel är specifika för tilläggsmetoder där du deklarerar mottagaren genom att lägga till this
modifieraren i metodens första parameter:
-
CS1100: Metoden har en parametermodifierare som
this
inte finns på den första parametern -
CS1101: Parametermodifieraren '
ref
' kan inte användas med 'this
'. - CS1105: Tilläggsmetoderna måste vara statiska.
- CS1110: Det går inte att definiera ett nytt tillägg eftersom det inte går att hitta den nödvändiga kompilatorns typ ExtensionAttribute . Saknar du en referens till System.Core.dll?
-
CS1112: Använd inte .ExtensionAttribute Använd nyckelordet "
this
" i stället.
En tilläggsmetod där mottagarinstansen this
innehåller modifieraren måste följa dessa regler, utöver de vanliga reglerna:
- Metoden måste ha
static
modifieraren. - Parametermodifieraren
this
måste tillämpas på den första parametern. Det kan inte tillämpas på andra parametrar i metoden. - Parametermodifieraren
ref
out
kan inte tillämpas på den första parametern. Om du vill användaref
måste du konvertera till ett tilläggsblock. - I .NET Framework-appar
System.Core.dll
måste läggas till som referens. - Du måste ange modifieraren
this
på den första parametern. Du kan inte använda ExtensionAttribute attributet direkt i stället.