Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A fordító a következő hibákat generálja, ha nincs megadva argumentum egy formális paraméterhez, vagy ha az argumentum nem érvényes az adott paraméterre:
-
CS0182: Az attribútumargumentumnak egy attribútumparaméter típusú állandó kifejezésnek,
typeofkifejezésnek vagy tömblétrehozó kifejezésnek kell lennie - CS0591: Érvénytelen érték az argumentumhoz
- CS0599: Érvénytelen érték a(z) "argumentum" nevű attribútumhoz
- CS0617: Nem érvényes elnevezett attribútumargumentum. Az elnevezett attribútumargumentumoknak olyan mezőknek kell lenniük, amelyek nem readonly, statikusak, vagy constok, vagy írás-olvasási tulajdonságok, amelyek publikusak és nem statikusak.
- CS0633: Az attribútum argumentumának érvényes azonosítónak kell lennie
- CS0643: Ismétlődő névvel ellátott attribútumargumentum
- CS0655: Érvénytelen elnevezett attribútumargumentum, mert nem érvényes attribútumparaméter-típus,
- CS0839: hiányzik argumentum.
- CS1016: Nevezett attribútumargumentum várható
- CS1739: A legjobb túlterhelés nem rendelkezik nevű paraméterrel
- CS1740: Nevesített argumentum nem adható meg többször
- CS1742: Egy tömbelérés nem rendelkezhet elnevezett argumentum-megjelölővel
- CS1744: Elnevezett argumentum azt a paramétert adja meg, amelyhez már kapott pozícióargumentumot
- CS1746: A meghatalmazottnak nincs "name" nevű paramétere
- CS7036: Nincs olyan argumentum, amely megfelel a szükséges paraméternek
- CS7067: Attribútumkonstruktor paraméter nem kötelező, de nincs megadva alapértelmezett paraméterérték.
- CS8324: Elnevezett argumentum-specifikációknak meg kell jelenniük, miután az összes rögzített argumentumot dinamikus meghívásban adták meg.
- CS8905: A függvénymutató nevesített argumentumokkal nem hívható meg.
- CS8943: null nem érvényes paraméternév. Egy példánymetódus fogadójához való hozzáféréshez használja az üres sztringet paraméternévként.
- CS8944: A metódus nem példánymetódus, a fogadó nem lehet interpolált sztringkezelő argumentum.
- CS8945: Érvénytelen paraméternév.
-
CS8948:
InterpolatedStringHandlerArgumentAttributeargumentumok nem hivatkozhatnak arra a paraméterre, amelyen az attribútumot használják. -
CS8949: A paraméterre alkalmazott
InterpolatedStringHandlerArgumentAttributehelytelenül formázott, és nem értelmezhető. Hozzon létre egy példányt manuálisan. - CS8950: A paraméter egy argumentum az interpolált karaktersor-kezelő konverziójához, de a megfelelő argumentum az interpolált karaktersor kifejezés után van megadva. Rendezze át az argumentumokat.
- CS8951: A paraméter nincs explicit módon megadva, hanem argumentumként használatos a paraméter interpolált sztringkezelőjének konvertálásához.
-
CS8964: A
CallerArgumentExpressionAttributecsak az alapértelmezett értékekkel rendelkező paraméterekre lehet alkalmazni -
CS8965: A paraméterre alkalmazott
CallerArgumentExpressionAttributenem lesz hatása, mert önhivatkozó. -
CS8966: A
CallerArgumentExpressionAttributenem lesz hatással, mert olyan környezetben használt tagra vonatkozik, amely nem engedélyezi az opcionális argumentumokat
Hiányzó argumentum
A rendszer a következő általános hibákat adja ki, ha a fordító nem tud argumentumokat egyeztetni az összes tagparaméterhez:
- CS0839: hiányzik argumentum.
- CS7036: Nincs olyan argumentum, amely megfelel a szükséges paraméternek
Ezek a hibák általánosak: A fordító nem tudja összepárosítani a metódushívásban megadott argumentumokat a metódus kötelező paramétereivel. Ellenőrizze az alábbi okokat:
- Győződjön meg arról, hogy az összes szükséges argumentumot tartalmazza.
- Győződjön meg arról, hogy az argumentumok a megfelelő sorrendben vannak.
- Győződjön meg arról, hogy az összes argumentum a megfelelő típus.
- Győződjön meg arról, hogy a túlterhelés feloldási szabályai a várt módszert választották.
Előfordulhat, hogy CS7036 is megjelenik, ha túlterhelt helyi függvényeket írt. A helyi függvények nem terhelhetők túl. A fordító csak az első helyi függvényt ismeri fel ezzel a névvel. Ellenőrizze, hogy egy másik helyi függvényt szeretne-e meghívni.
Ezek a hibák gyakran más diagnosztikával is megjelennek, amelyek segíthetnek a helyes ok diagnosztizálásában.
Attribútumok argumentumai
A fordító ezeket a hibákat akkor állítja ki, ha egy attribútumkonstruktor argumentuma helytelen:
-
CS0182: Az attribútumargumentumnak állandó kifejezésnek,
typeofkifejezésnek vagy tömblétrehozó kifejezésnek kell lennie egy attribútumparaméter-típusú kifejezés részeként - CS0591: Érvénytelen érték az argumentumhoz
- CS0599: Érvénytelen érték a 'nevű attribútum' argumentum számára
- CS0617: Érvénytelen elnevezett attribútum argumentum. Az elnevezett attribútumargumentumoknak olyan mezőknek vagy írás/olvasási jogú tulajdonságoknak kell lenniük, amelyek nem readonly, nem statikusak, és nem const értékek, továbbá nyilvánosak és nem statikusak.
- CS0633: Az attribútum argumentumának érvényes azonosítónak kell lennie
- CS0643: Névvel ellátott attribútumargumentum ismétlődése
- CS0655: nem érvényes elnevezett attribútumargumentum, mert nem érvényes attribútumparaméter-típus,
Ha az attribútumdefinícióban használja a System.AttributeUsageAttribute, győződjön meg arról, hogy az engedélyezett értékek nem zárják ki egymást. Ellenőrizze, hogy az attribútum argumentumainak típusa és sorrendje helyes-e. Győződjön meg arról, hogy a sztringargumentumok szövege érvényes. Számos attribútum esetében az argumentumnak érvényes C# azonosítónak kell lennie. Az attribútumkonstruktorok argumentumainak fordítási időállandóknak kell lenniük. Ezért csak azokat a típusokat használhatják, amelyek konstansokat támogatnak. Emellett az alábbi, szó szerinti konstansokat engedélyező típusok attribútumparaméterekként nem engedélyezettek:
Nem adhatja meg az azonos paraméternévvel rendelkező ismétlődő elnevezett argumentumokat. Az akadálymentes tulajdonságokat csak attribútum inicializálásakor állíthatja be. Nem állíthat be privát tulajdonságokat.
Elnevezett és választható paraméterek és argumentumok
A fordító a következő hibákat állítja ki a névvel ellátott és választható argumentumok helytelen használata esetén:
- CS1016: Elnevezett attribútum argumentuma várható
- CS1739: A legjobb túlterhelés nem rendelkezik nevű paraméterrel
- CS1740: Nevesített argumentum nem adható meg többször
- CS1742: Egy tömbelérés nem rendelkezhet elnevezett argumentum-megjelölővel
- CS1744: Elnevezett argumentum azt a paramétert adja meg, amelyhez már kapott pozícióargumentumot
- CS1746: A meghatalmazott nem rendelkezik "name" nevű paraméterrel
- CS7067: Attribútumkonstruktor paraméter nem kötelező, de nincs megadva alapértelmezett paraméterérték.
- CS8324: Elnevezett argumentum-specifikációknak meg kell jelenniük, miután az összes rögzített argumentumot dinamikus meghívásban adták meg.
- CS8905: A függvénymutató nevesített argumentumokkal nem hívható meg.
Ellenőrizze a hibák következő okait:
- A névvel ellátott argumentum paraméterneve helytelen.
- A választott túlterhelés nem rendelkezik az elnevezett argumentumnak megfelelő paraméterrel.
- A paraméternév több argumentumon is ismétlődik.
- A névvel ellátott argumentumok után megjelenik egy pozícióbeli (névtelen) argumentum.
- A tömbindex-paraméterek nevesített argumentumai nem engedélyezettek.
Interpolált karakterlánc-kezelő
A fordító a következő hibákat adja ki, amikor helytelenül adott meg egy interpolált sztringkezelőt.
- CS8943: null nem érvényes paraméternév. Egy példánymetódus fogadójához való hozzáféréshez használja az üres sztringet paraméternévként.
- CS8944: Nem egy példány metódus, a fogadó nem lehet interpolált sztringkezelő argumentum.
- CS8945: Érvénytelen paraméternév.
-
CS8948:
InterpolatedStringHandlerArgumentAttributeargumentumok nem hivatkozhatnak arra a paraméterre, amelyen az attribútumot használják. -
CS8949: A paraméterre alkalmazott
InterpolatedStringHandlerArgumentAttributehelytelenül formázott, és nem értelmezhető. Hozzon létre manuálisan egy példányt. - CS8950: A paraméter az interpolált karakterlánc kezelőjének paraméteren történő konvertálásához használt argumentum, de a megfelelő paraméter az interpolált karakterlánc kifejezés után van megadva.
- CS8951: A paraméter nincs explicit módon megadva, hanem argumentumként használatos a paraméter interpolált sztringkezelőjének konvertálásához.
Az interpolált sztringkezelő egy mintaalapú szerkezet. Az a fontos, hogy pontos legyen a minta. Tekintse meg az egyéni interpolált sztringkifejezés-kezelők C# nyelvspecifikációs szakaszát, vagy kövesse az interpolált sztringkezelők létrehozására vonatkozó oktatóanyagot.
A hívó hibakeresési információi
A fordító a következő hibát adja ki a System.Runtime.CompilerServices.CallerArgumentExpressionAttributehelytelen használata esetén:
-
CS8964: A
CallerArgumentExpressionAttributecsak az alapértelmezett értékekkel rendelkező paraméterekre lehet alkalmazni
Emellett a fordító a következő figyelmeztetéseket adja ki a CallerArgumentExpressionAttributehelytelen használatával kapcsolatban:
-
CS8965: A paraméterre alkalmazott
CallerArgumentExpressionAttributenem lesz hatással, mert önhivatkozó. -
CS8966: A
CallerArgumentExpressionAttributenem lesz hatással, mert olyan környezetekben használt tagra vonatkozik, amelyek nem teszik lehetővé az opcionális argumentumokat
Az CallerArgumentExpression attribútummal jegyzett paramétereknek alapértelmezett értékkel kell rendelkezniük.