Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Chyby a upozornění související s metodami rozšíření deklarovanými s
-
CS1100: Metoda má modifikátor parametru '
this
', který není u prvního parametru. -
CS1101: Modifikátor parametru '
ref
' nelze použít s 'this
'. -
CS1102: Modifikátor parametru '
out
' nelze použít s 'this
'. - CS1103: První parametr metody rozšíření nemůže být typu ukazatele.
- CS1105: Rozšiřující metody musí být statické.
- CS1106: Rozšiřující metody musí být definovány v ne generické statické třídě.
- CS1109: Rozšiřující metody musí být definovány ve statických třídách nejvyšší úrovně, "name" je vnořená třída.
- CS1110: Nelze definovat nové rozšíření, protože požadovaný typ ExtensionAttribute kompilátoru nebyl nalezen. Chybí vám odkaz na System.Core.dll?
-
CS1112: Nepoužívejte 'ExtensionAttribute'. Místo toho použijte klíčové slovo '
this
'. - CS1113: Rozšiřující metoda definovaná pro typ hodnoty nelze použít k vytvoření delegátů.
- CS1743: Nelze zadat výchozí hodnotu parametru "this".
- CS9281: Deklarace rozšíření nemusí mít název.
- CS9282: Deklarace rozšíření mohou obsahovat pouze metody nebo vlastnosti.
- CS9283: Rozšíření musí být deklarována v statické třídě nejvyšší úrovně, která není obecná.
- CS9284: Parametr příjemce rozšíření nemůže mít výchozí hodnotu.
- CS9285: Kontejner rozšíření může mít pouze jeden parametr příjemce.
- CS9287: Parametr příjemce nemůže mít stejný název jako parametr typu kontejneru rozšíření.
- CS9288: Parametr, místní proměnná nebo místní funkce nesmí mít stejný název jako parametr typu kontejneru rozšíření.
- CS9289: Parametr typu člena má stejný název jako parametr typu kontejneru rozšíření.
- CS9290: Parametr, místní proměnná nebo místní funkce nesmí mít stejný název jako parametr rozšíření.
-
CS9291:
value
Automaticky vygenerovaný název parametru je v konfliktu s názvem parametru rozšíření. - CS9292: Parametr typu má stejný název jako parametr rozšíření.
- CS9293: V tomto kontextu nelze použít parametr rozšíření.
-
CS9294: '
value
': Automaticky vygenerovaný název parametru koliduje s názvem parametru typu rozšíření. - CS9295: Rozšířený typ musí odkazovat na všechny parametry typu deklarované rozšířením, ale parametr typu není odkazován.
-
CS9300: Parametr '
ref
' přijímače rozšiřujícího bloku musí být hodnotový typ nebo obecný typ omezený na strukturu. -
CS9301: '
in
' nebo 'ref readonly
' parametr přijímače rozšíření musí být konkrétní (ne generický) typ hodnoty. - CS9302: Nový chráněný člen deklarovaný v bloku rozšíření.
- CS9303: Nelze deklarovat členy instance v bloku rozšíření s nepojmenovaným parametrem příjemce.
- CS9304: V bloku rozšíření nelze deklarovat přístupové objekty jen pro inicializaci.
- CS9305: Nelze použít modifikátory u nepojmenovaného parametru přijímače bloku rozšíření.
Běžné chyby u deklarací rozšíření
Kompilátor generuje tyto chyby při porušení pravidel, která se vztahují na všechny deklarace členů rozšíření bez ohledu na zvolenou syntaxi:
-
CS1102: Modifikátor parametru '
out
' nelze použít s 'this
'. - CS1106: Rozšiřující metody musí být definovány v ne generické statické třídě.
- CS1103: První parametr metody rozšíření nemůže být typu ukazatele.
- CS1109: Rozšiřující metody musí být definovány ve statických třídách nejvyšší úrovně, "name" je vnořená třída.
- CS1113: Rozšiřující metoda definovaná pro typ hodnoty nelze použít k vytvoření delegátů.
- CS1743: Nelze zadat výchozí hodnotu parametru "this".
- CS9283: Rozšíření musí být deklarována v statické třídě nejvyšší úrovně, která není obecná.
- CS9284: Parametr příjemce rozšíření nemůže mít výchozí hodnotu.
- CS9285: Kontejner rozšíření může mít pouze jeden parametr příjemce.
Všechna deklarace rozšíření musí dodržovat tato pravidla:
- Jeho obsahující typ (
class
nebostruct
) musí být negenerický astatic
. - Jeho obsahující typ musí být typ nejvyšší úrovně. Nedá se vnořit do jiného typu.
- Členy, které rozšiřují instanci typu hodnoty, nelze převádět na delegáty.
- Parametr přijímače nemůže obsahovat modifikátor parametru
out
. - Parametr příjemce nemůže mít výchozí hodnotu argumentu.
- Typy ukazatelů nelze rozšířit. Jinými slovy, parametr, na který použijete
this
modifikátor, nemůže být typ ukazatele.
Chyby související s deklaracemi bloků pro rozšíření
Tyto chyby jsou specifické pro bloky rozšíření, funkci C# 14. Bloky rozšíření jsou deklarovány pomocí klíčového extension
slova ve statické třídě. Deklaruje extension
typ a název příjemce. Všichni členové deklarovaní v bloku s extension
jsou členy rozšíření pro tohoto příjemce:
- CS9281: Deklarace rozšíření nemusí mít název.
- CS9282: Deklarace rozšíření mohou obsahovat pouze metody nebo vlastnosti.
- CS9287: Parametr příjemce nemůže mít stejný název jako parametr typu kontejneru rozšíření.
- CS9288: Parametr, místní proměnná nebo místní funkce nesmí mít stejný název jako parametr typu kontejneru rozšíření.
- CS9289: Parametr typu člena má stejný název jako parametr typu kontejneru rozšíření.
- CS9290: Parametr, místní proměnná nebo místní funkce nesmí mít stejný název jako parametr rozšíření.
-
CS9291:
value
Automaticky vygenerovaný název parametru je v konfliktu s názvem parametru rozšíření. - CS9292: Parametr typu má stejný název jako parametr rozšíření.
- CS9293: V tomto kontextu nelze použít parametr rozšíření.
-
CS9294: '
value
': Automaticky vygenerovaný název parametru koliduje s názvem parametru typu rozšíření. - CS9295: Rozšířený typ musí odkazovat na všechny parametry typu deklarované rozšířením, ale parametr typu není odkazován.
-
CS9300: Parametr
ref
příjemce bloku rozšíření musí být typ hodnoty nebo obecný typ omezený na strukturu. -
CS9301: Parametr přijímače '
in
' nebo 'ref readonly
' rozšíření musí být konkrétní (ne generický) pevný typ hodnoty. - CS9302: Nový chráněný člen deklarovaný v bloku rozšíření.
- CS9303: Nelze deklarovat členy instance v bloku rozšíření s nepojmenovaným parametrem příjemce.
- CS9304: V bloku rozšíření nelze deklarovat přístupové objekty jen pro inicializaci.
- CS9305: Nelze použít modifikátory u nepojmenovaného parametru přijímače bloku rozšíření.
Deklarace rozšíření musí dodržovat tato pravidla:
- Rozšíření nesmí obsahovat názevový token. Externí modul deklaruje jenom příjemce.
- Parametr příjemce nemůže mít výchozí hodnotu.
Členové deklarovaní v rozšíření musí kromě společných pravidel dodržovat tato pravidla:
- Platné typy členů rozšíření jsou pouze metody a vlastnosti. Členové rozšíření mohou rozšířit instanci nebo typ.
- Rozšíření musí poskytnout název parametru pro příjemce, aby bylo možné obsahovat členy, které rozšiřují instanci.
- Název parametru příjemce musí být v daném bloku rozšíření jedinečný.
- Všichni členové rozšíření musí používat všechny parametry typu deklarované v rozšíření. Můžou přidat další parametry typu.
Chyby související s metodami this
rozšíření parametrů
Tyto chyby jsou specifické pro rozšiřující metody, kde deklarujete příjemce přidáním this
modifikátoru do prvního parametru metody:
-
CS1100: Metoda má modifikátor parametru '
this
', který není u prvního parametru. -
CS1101: Modifikátor parametru '
ref
' nelze použít s 'this
'. - CS1105: Rozšiřující metody musí být statické.
- CS1110: Nelze definovat nové rozšíření, protože požadovaný typ ExtensionAttribute kompilátoru nebyl nalezen. Chybí vám odkaz na System.Core.dll?
-
CS1112: Nepoužívejte 'ExtensionAttribute'. Místo toho použijte klíčové slovo '
this
'.
Rozšiřující metoda, kde instance příjemce obsahuje this
modifikátor, musí kromě běžných pravidel dodržovat tato pravidla:
- Metoda musí mít
static
modifikátor. - Modifikátor parametru
this
musí být použit u prvního parametru. Nedá se použít na žádné další parametry metody. -
ref
out
Modifikátor parametru nelze použít u prvního parametru. Chcete-li použítref
, je třeba převést ho na blok rozšíření. - V aplikacích .NET Framework je nutné přidat
System.Core.dll
jako referenci. - U prvního parametru
this
je nutné zadat modifikátor. Nemůžete místo toho přímo použít atribut ExtensionAttribute.