Chyby a upozornění související s partial
deklaracemi typů a partial
členů
Existuje mnoho chyb souvisejících s partial
deklaracemi typu a partial
člena:
- CS0260: Chybí částečný modifikátor deklarace typu; existuje další částečná deklarace tohoto typu.
- CS0261: Částečné deklarace typu musí být všechny třídy, všechny struktury nebo všechna rozhraní
- CS0262: Částečné deklarace typu mají konfliktní modifikátory přístupnosti
- CS0263: Částečné deklarace typu nesmí určovat různé základní třídy
- CS0264: Částečné deklarace typu musí mít stejné názvy parametrů typu ve stejném pořadí.
- CS0265: Částečné deklarace typu mají nekonzistentní omezení pro parametr type 'type parameter'
- CS0267: Modifikátor '
partial
' se může objevit pouze bezprostředně před 'class
', 'record
', 'struct
', 'interface
' nebo metodou nebo návratovým typem vlastnosti. - CS0282: Není definováno řazení mezi poli v několika deklarací částečné třídy nebo struktury 'type'. Chcete-li zadat řazení, musí být všechna pole instance ve stejné deklaraci.
- CS0501: Členová funkce musí deklarovat tělo, protože není označeno
abstract
,extern
nebopartial
- CS0750: Částečný člen nemůže mít modifikátor '
abstract
'. - CS0751: Částečný člen musí být deklarován v částečném
class
nebo částečnémstruct
- CS0754: Částečný člen nemusí explicitně implementovat metodu rozhraní.
- CS0755: Obě částečné deklarace metody musí být rozšiřující metody, nebo ani jedna z nich nemůže být rozšiřující metoda.
- CS0756: Částečná metoda nemusí mít více definic deklarací.
- CS0757: Částečná metoda nemusí mít více implementací deklarací.
- CS0759: Nebyla nalezena žádná definice deklarace pro implementaci deklarace částečné metody.
- CS0761: Částečné deklarace
method<T>
metody mají nekonzistentní omezení parametrů typu. - CS0762: Nelze vytvořit delegáta z metody, protože se jedná o částečnou metodu bez implementace deklarace
- CS0763: Obě deklarace částečné metody musí být
static
nebo nesmí býtstatic
. - CS0764: Obě deklarace částečné metody musí být
unsafe
nebo nesmí býtunsafe
- CS1067: Částečné deklarace musí mít stejné názvy parametrů typu a modifikátory rozptylu ve stejném pořadí.
- CS8142: Obě částečné deklarace členů musí používat stejné názvy elementů řazené kolekce členů.
- CS8663: Obě deklarace částečného členu musí být jen pro čtení, nebo nesmí být jen pro čtení.
- CS8796: Částečná metoda musí mít modifikátory přístupnosti, protože má nevoid návratový typ.
- CS8795: Částečný člen musí mít část implementace, protože má modifikátory přístupnosti.
- CS8797: Částečná metoda musí mít modifikátory přístupnosti, protože má parametry '
out
'. - CS8798: Částečná metoda musí mít modifikátory přístupnosti, protože má modifikátor '
virtual
', 'override
', 'sealed
'new
nebo 'extern
' modifikátor. - CS8799: Obě částečné deklarace členů musí mít stejné modifikátory přístupnosti.
- CS8800: Obě částečné deklarace členů musí mít identické kombinace
virtual
,override
,sealed
anew
modifikátory. - CS8817: Obě deklarace částečné metody musí mít stejný návratový typ.
- CS8818: Částečné deklarace členů musí mít odpovídající
ref
návratové hodnoty. - CS8863: Seznam parametrů může obsahovat pouze jednu deklaraci částečného typu.
- CS8988:
scoped
Modifikátor parametru neodpovídá částečné definici. - CS9248: Částečná vlastnost musí mít část implementace.
- CS9249: Částečná vlastnost musí mít část definice.
- CS9250: Částečná vlastnost nemusí mít více definujících deklarací a nemůže být automatickou vlastností.
- CS9251: Částečná vlastnost nemusí mít více implementací deklarací
- CS9252: Je nutné implementovat přístupové objekty vlastností, protože je deklarován v části definice.
- CS9253: Přístupové objekty vlastností neimplementují žádné přístupové objekty deklarované v části definice
- CS9254: Přístupové objekty vlastností musí odpovídat části definice
- CS9255: Obě částečné deklarace vlastností musí mít stejný typ.
- CS9256: Částečné deklarace vlastností mají rozdíly mezi podpisy.
- CS9257: Musí být požadovány obě částečné deklarace vlastností nebo nemusí být požadovány.
Následující části popisují příčinu a opravy těchto chyb a upozornění.
Částečné typy
- CS0260: Chybí částečný modifikátor deklarace typu; existuje další částečná deklarace tohoto typu.
- CS0261: Částečné deklarace typu musí být všechny třídy, všechny struktury nebo všechna rozhraní
- CS0262: Částečné deklarace typu mají konfliktní modifikátory přístupnosti
- CS0263: Částečné deklarace typu nesmí určovat různé základní třídy
- CS0264: Částečné deklarace typu musí mít stejné názvy parametrů typu ve stejném pořadí.
- CS0265: Částečné deklarace typu mají nekonzistentní omezení pro parametr type 'type parameter'
- CS0267: Modifikátor '
partial
' se může objevit pouze bezprostředně před 'class
', 'record
', 'struct
', 'interface
' nebo metodou nebo návratovým typem vlastnosti. - CS8863: Seznam parametrů může obsahovat pouze jednu deklaraci částečného typu.
Deklarace částečného typu může způsobit, že kompilátor vygeneruje následující upozornění:
- CS0282: Není definováno řazení mezi poli v několika deklarací částečné
class
nebostruct
"typu". Chcete-li zadat řazení, musí být všechna pole instance ve stejné deklaraci.
U každého částečného partial
typu musí klíčové slovo bezprostředně předcházet class
, record
, , struct
nebo interface
. Kompilátor vygeneruje chybu, pokud se zobrazí v jiném pořadí. Kromě toho:
- Všechny deklarace částečného typu se musí shodovat s ohledem na typ (
class
,struct
,record class
,record struct
,readonly struct
, neboreadonly record struct
). - Všechny deklarace musí obsahovat
partial
modifikátor. - Deklarace obecného částečného typu musí obsahovat stejné parametry typu ve stejném pořadí.
Některé části deklarace nejsou nutné opakovat u všech deklarací typu. Pokud se však tyto prvky opakují u více partial
deklarací, musí se shodovat:
- Všechny modifikátory přístupu, například
public
. - Jakákoli základní třída nebo implementovaná rozhraní.
- Všechna omezení parametrů typu.
Primární konstruktor lze deklarovat na maximálně jedné deklaraci částečného typu.
Kompilátor vás upozorní, pokud máte více polí deklarovaných v několika souborech pro určitý partial struct
typ. Pokud je pořadí rozložení důležité, musíte deklarovat všechna pole ve stejném souboru. Pokud na objednávce nezáleží, můžete ji použít System.Runtime.InteropServices.StructLayoutAttribute s LayoutKind.Auto hodnotou.
Částečné členy
- CS0750: Částečný člen nemůže mít modifikátor '
abstract
'. - CS0751: Částečný člen musí být deklarován v částečném
class
nebo částečnémstruct
- CS0754: Částečný člen nemusí explicitně implementovat metodu rozhraní.
- CS0763: Obě deklarace částečné metody musí být
static
nebo nesmí býtstatic
. - CS0764: Obě deklarace částečné metody musí být
unsafe
nebo nesmí býtunsafe
- CS8142: Obě částečné deklarace členů musí používat stejné názvy elementů řazené kolekce členů.
- CS8663: Obě deklarace částečného členu musí být jen pro čtení, nebo nesmí být jen pro čtení.
- CS8799: Obě částečné deklarace členů musí mít stejné modifikátory přístupnosti.
- CS8800: Obě částečné deklarace členů musí mít identické kombinace
virtual
,override
,sealed
anew
modifikátory. - CS8818: Částečné deklarace členů musí mít odpovídající
ref
návratové hodnoty. - CS8988:
scoped
Modifikátor parametru neodpovídá částečné definici.
Částečné členy mají dvě deklarace. Deklarace bez implementace je deklarující deklarace. Deklarace s implementací je prováděcí deklarace. Částečné členy jsou povoleny pouze v partial
typu. Částečné členy nemohou být abstract
. Částečné členy nemohou explicitně implementovat rozhraní. Obě deklarace částečného členu musí mít identické podpisy. Například obě nebo ani jedna deklarace mohou obsahovat static
nebo unsafe
modifikátory.
Částečné metody
- CS0501: Členová funkce musí deklarovat tělo, protože není označeno
abstract
,extern
nebopartial
- CS0755: Obě částečné deklarace metody musí být rozšiřující metody, nebo ani jedna z nich nemůže být rozšiřující metoda.
- CS0756: Částečná metoda nemusí mít více definic deklarací.
- CS0757: Částečná metoda nemusí mít více implementací deklarací.
- CS0759: Nebyla nalezena žádná definice deklarace pro implementaci deklarace částečné metody.
- CS0761: Částečné deklarace
method<T>
metody mají nekonzistentní omezení parametrů typu. - CS0762: Nelze vytvořit delegáta z metody, protože se jedná o částečnou metodu bez implementace deklarace
- CS1067: Částečné deklarace musí mít stejné názvy parametrů typu a modifikátory rozptylu ve stejném pořadí.
- CS8796: Částečná metoda musí mít modifikátory přístupnosti, protože má nevoid návratový typ.
- CS8795: Částečný člen musí mít část implementace, protože má modifikátory přístupnosti.
- CS8797: Částečná metoda musí mít modifikátory přístupnosti, protože má parametry '
out
'. - CS8798: Částečná metoda musí mít modifikátory přístupnosti, protože má modifikátor '
virtual
', 'override
', 'sealed
'new
nebo 'extern
' modifikátor. - CS8817: Obě deklarace částečné metody musí mít stejný návratový typ.
Některé partial
deklarace metody nevyžadují implementaci deklarace. To znamená, že pokud člen vrátí void
, deklaruje žádné modifikátory přístupu (včetně výchozího private
modifikátoru) a nezahrnuje žádný z virtual
, , override
nebo sealed
new
modifikátorů. V opačném případě musí jakákoli částečná metoda obsahovat deklarování i implementaci deklarací i implementující deklarace.
Pokud částečná metoda obsahuje implementickou deklaraci, musí být obě deklarace identické. Definovat lze přesně jednu implementaci deklarace.
Částečné vlastnosti
Následující chyby označují chyby v deklaraci částečné vlastnosti nebo indexeru:
- CS9248: Částečná vlastnost musí mít část implementace.
- CS9249: Částečná vlastnost musí mít část definice.
- CS9250: Částečná vlastnost nemusí mít více definujících deklarací a nemůže být automatickou vlastností.
- CS9251: Částečná vlastnost nemusí mít více implementací deklarací
- CS9252: Je nutné implementovat přístupové objekty vlastností, protože je deklarován v části definice.
- CS9253: Přístupové objekty vlastností neimplementují žádné přístupové objekty deklarované v části definice
- CS9254: Přístupové objekty vlastností musí odpovídat části definice
- CS9255: Obě částečné deklarace vlastností musí mít stejný typ.
- CS9257: Musí být požadovány obě částečné deklarace vlastností nebo nemusí být požadovány.
Následující upozornění označuje rozdíl podpisu v deklarování a implementaci deklarací a implementací deklarací v částečné vlastnosti:
- CS9256: Částečné deklarace vlastností mají rozdíly mezi podpisy.
Částečná vlastnost nebo indexer musí mít deklarující deklaraci i implementující deklaraci. Podpisy obou deklarací se musí shodovat. Vzhledem k tomu, že deklarace deklarace používá stejnou syntaxi jako automaticky implementovaná vlastnost, nemůže být implementující deklarace automaticky implementovaná vlastnost. Příslušenství musí obsahovat těla.