Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Erros e avisos relacionados a declarações
Você pode encontrar os seguintes erros relacionados a partial declarações de tipo e partial membro:
- CS0260: modificador parcial ausente na declaração do tipo; existe outra declaração parcial desse tipo
- CS0261: as declarações parciais de tipo devem ser todas as classes, todos as estruturas ou todas as interfaces
- CS0262: as declarações parciais de tipo têm modificadores de acessibilidade conflitantes
- CS0263: as declarações parciais de tipo não devem especificar classes de base diferentes
- CS0264: as declarações parciais de tipo devem ter os mesmos nomes de parâmetros de tipo na mesma ordem
- CS0265: as declarações parciais de tipo têm restrições inconsistentes para o parâmetro de tipo "parâmetro de tipo"
-
CS0267: o modificador '
partial' só pode aparecer imediatamente antes de 'class', 'record', 'struct', 'interface' ou de um método ou tipo de retorno de propriedade. - CS0282: não há ordenação definida entre os campos em várias declarações de classe parcial ou "tipo" de estrutura. Para especificar uma ordenação, todos os campos de instância devem estar na mesma declaração.
-
CS0501: "Função de membro" deve declarar um corpo porque não está marcada com
abstract,extern, oupartial -
CS0750: um membro parcial não pode ter o modificador "
abstract". -
CS0751: um membro parcial deve ser declarado em um parcial
classou parcialstruct - CS0754: um membro parcial não pode implementar explicitamente um método de interface.
- CS0755: ambas as declarações de método parcial devem ser métodos de extensão ou nenhuma delas pode ser um método de extensão.
- CS0756: Um método parcial não pode ter várias declarações de definição.
- CS0757: Um método parcial não pode ter várias declarações de implementação.
- CS0759: nenhuma declaração de definição encontrada para implementar a declaração de método parcial.
-
CS0761: declarações parciais de métodos de
method<T>têm restrições inconsistentes de parâmetros de tipo. - CS0762: não é possível criar um delegado a partir do método porque ele é um método parcial sem uma declaração de implementação
-
CS0763: ambas as declarações de métodos parciais devem ser
staticou nenhuma delas pode serstatic. -
CS0764: ambas as declarações de métodos parciais devem ser
unsafeou nenhuma delas pode serunsafe - CS1067: as declarações parciais devem ter os mesmos nomes de parâmetros de tipo e modificadores de variância na mesma ordem.
- CS8142: ambas as declarações de membro parcial devem usar os mesmos nomes de elementos de tupla.
- CS8663: ambas as declarações parciais de membro devem ser somente leitura ou nenhuma pode ser somente leitura
- CS8796: o método parcial deve ter modificadores de acessibilidade porque tem um tipo de retorno não nulo.
- CS8795: O membro parcial deve ter uma parte de implementação porque possui modificadores de acessibilidade.
-
CS8797: o método parcial deve ter modificadores de acessibilidade porque possui parâmetros "
out". -
CS8798: o método parcial deve ter modificadores de acessibilidade porque tem um modificador '
virtual", "override", "sealed" , "new" ou "extern". - CS8799: ambas as declarações de membro parcial devem ter modificadores de acessibilidade idênticos.
-
CS8800: ambas as declarações de membro parcial devem ter combinações idênticas de modificadores
virtual,override,sealed, enew. - CS8817: ambas as declarações de método parcial devem ter o mesmo tipo de retorno.
-
CS8818: as declarações de membro parciais devem ter valores retornados
refcorrespondentes. - CS8863: somente uma única declaração de tipo parcial pode ter uma lista de parâmetros
-
CS8988: o
scopedmodificador do parâmetro não corresponde à definição parcial. - CS9248: a propriedade parcial deve ter uma parte de implementação.
- CS9249: a propriedade parcial deve ter uma parte de definição.
- CS9250: uma propriedade parcial pode não ter várias declarações de definição e não pode ser uma propriedade automática.
- CS9251: uma propriedade parcial não pode ter várias declarações de implementação
- CS9252: o acessador de propriedade deve ser implementado porque ele é declarado na parte de definição
- CS9253: o acessador de propriedade não implementa nenhum acessador declarado na parte de definição
- CS9254: o acessador de propriedade deve corresponder à parte de definição
- CS9255: ambas as declarações de propriedade parcial devem ter o mesmo tipo.
- CS9256: as declarações de propriedade parcial têm diferenças de assinatura.
- CS9257: ambas as declarações de propriedade parciais devem ser obrigatórias ou nenhuma pode ser obrigatória
- CS9275: o membro parcial deve ter uma parte de implementação.
- CS9276: O membro parcial deve ter uma parte de definição.
- CS9277: O membro parcial pode não ter várias declarações de definição.
- CS9278: O membro parcial pode não ter várias declarações de implementação.
- CS9279: O evento parcial não pode ter inicializador.
- CS9280: somente a declaração de implementação de um construtor parcial pode ter um inicializador.
As seções a seguir explicam a causa e as correções desses erros e avisos.
Tipos parciais
- CS0260: Modificador parcial ausente na declaração do tipo; existe outra declaração parcial desse tipo
- CS0261: declarações parciais do tipo devem ser todas as classes, todos os structs ou todas as interfaces
- CS0262: declarações parciais do tipo têm modificadores de acessibilidade conflitantes
- CS0263: declarações parciais do tipo não devem especificar classes base diferentes
- CS0264: declarações parciais do tipo devem ter os mesmos nomes de parâmetro de tipo na mesma ordem
- CS0265: Declarações parciais do tipo têm restrições inconsistentes para o parâmetro de tipo 'type parameter'
-
CS0267: O modificador '
partial' só pode aparecer imediatamente antes de 'class', 'record', 'struct', 'interface', ou um tipo de retorno de método ou propriedade. - CS8863: apenas uma única declaração de tipo parcial pode ter uma lista de parâmetros
Sua declaração de tipo parcial pode fazer com que o compilador emita o seguinte aviso:
-
CS0282: não há uma ordenação definida entre campos em várias declarações de tipo parcial
classoustruct". Para especificar uma ordenação, todos os campos de instância devem estar na mesma declaração.
Esses erros ocorrem quando suas declarações de tipo parcial violam as regras para tipos parciais.
- Adicione o
partialmodificador a todas as declarações do tipo, pois depois de dividir um tipo entre várias declarações, cada parte deve incluir a palavra-chave (CS0260). - Verifique se todas as declarações usam a mesma palavra-chave de tipo, porque a combinação
class,structerecordinterfaceem diferentes partes do mesmo tipo não é permitida (CS0261). Você deve garantir modificadores de acesso consistentes em todas as declarações, como fazer todas as partespublicou todas as partesinternal, pois a acessibilidade conflitante em declarações diferentes cria ambiguidade sobre a visibilidade pretendida do tipo (CS0262). - Verifique se todas as declarações especificam a mesma classe base, pois um tipo pode herdar de apenas uma classe base, portanto, várias classes base diferentes entram em conflito (CS0263).
- Para tipos parciais genéricos, verifique se todas as declarações listam os mesmos parâmetros de tipo na mesma ordem, pois os nomes de parâmetro de tipo devem corresponder exatamente em todas as partes (CS0264).
- Verifique se as restrições nos parâmetros de tipo permanecem consistentes em todas as declarações, pois restrições inconsistentes criariam ambiguidade sobre quais tipos podem ser usados para os parâmetros de tipo (CS0265).
- Coloque a
partialpalavra-chave imediatamente antes da palavra-chave de tipo (class,record,structouinterface), porque a sintaxe do idioma requer essa ordenação específica (CS0267). - Declare um construtor primário em apenas uma declaração parcial, porque vários construtores primários entrariam em conflito sobre quais parâmetros de construtor e lógica de inicialização usar (CS8863).
Quando você declara campos em vários arquivos para um tipo de struct parcial, todas as declarações de campo devem ser consolidadas em um único arquivo se a ordem de layout de memória for importante, porque o compilador não pode garantir uma ordenação específica quando os campos são divididos entre vários arquivos (CS0282). Como alternativa, se a ordem de layout não importar, você pode aplicar o System.Runtime.InteropServices.StructLayoutAttribute com o valor LayoutKind.Auto para permitir que o runtime otimize o layout automaticamente.
Membros parciais
-
CS0750: um membro parcial não pode ter o modificador "
abstract". -
CS0751: um membro parcial deve ser declarado em um parcial
classou parcialstruct - CS0754: um membro parcial não pode implementar explicitamente um método de interface.
-
CS0763: ambas as declarações de métodos parciais devem ser
staticou nenhuma delas pode serstatic. -
CS0764: ambas as declarações de métodos parciais devem ser
unsafeou nenhuma deve serunsafe - CS8142: ambas as declarações de membro parcial devem usar os mesmos nomes de elementos de tupla.
- CS8663: ambas as declarações parciais de membro devem ser somente leitura ou nenhuma pode ser somente leitura
- CS8799: ambas as declarações de membro parcial devem ter modificadores de acessibilidade idênticos.
-
CS8800: Ambas as declarações de membro parcial devem ter combinações idênticas de modificadores
virtual,override,sealed, enew. -
CS8818: as declarações de membro parciais devem ter valores retornados
refcorrespondentes. -
CS8988: O
scopedmodificador do parâmetro não corresponde à definição parcial. - CS9275: o membro parcial deve ter uma parte de implementação.
- CS9276: O membro parcial deve ter uma parte de definição.
- CS9277: O membro parcial pode não ter várias declarações de definição.
- CS9278: O membro parcial pode não ter várias declarações de implementação.
Esses erros ocorrem quando suas declarações parciais de membro violam as regras de métodos parciais, propriedades, indexadores e eventos.
- Remova o
abstractmodificador de membros parciais, pois os membros abstratos exigem classes derivadas para fornecer implementações. Esse requisito entra em conflito com o padrão de membro parcial em que a implementação é fornecida na declaração de implementação (CS0750). - Declare membros parciais em um tipo que inclua o
partialmodificador, pois os membros parciais só podem existir em tipos parciais (CS0751). - Remova implementações de interface explícitas de membros parciais, pois o padrão de declaração de duas partes não é compatível com a sintaxe de implementação de interface explícita (CS0754).
- Inclua ou omita o
staticmodificador consistentemente em ambas as declarações, pois a combinação de membros estáticos e de instância criaria ambiguidade sobre como o membro é invocado (CS0763). - Inclua ou omita o
unsafemodificador consistentemente em ambas as declarações, pois contextos não seguros inconsistentes podem criar problemas de segurança ou erros de compilação (CS0764). - Use nomes de elementos de tupla idênticos nas duas declarações, pois nomes diferentes criariam confusão sobre quais nomes estão disponíveis no código que consome (CS8142).
- Incluir ou omitir o modificador
readonlyde forma consistente em ambas as declarações, pois a combinação de declarações de somente leitura e não somente leitura cria ambiguidade sobre se o membro pode modificar o estado da instância (CS8663). - Use modificadores de acessibilidade idênticos (como
public, ,privateprotectedouinternal) em ambas as declarações, pois níveis de acessibilidade diferentes entrariam em conflito com a visibilidade do membro (CS8799). - Aplique a mesma combinação de
virtual,override,sealedenewmodificadores a ambas as declarações, porque esses modificadores controlam a herança e o comportamento de polimorfismo que devem ser consistentes (CS8800). - Use modificadores de retorno correspondentes
refem ambas as declarações, pois o comportamento inconsistente de retorno por referência criaria problemas de segurança de tipo (CS8818). - Aplique o
scopedmodificador consistentemente aos parâmetros em ambas as declarações, pois esse modificador controla o tempo de vida dos parâmetros ref e deve corresponder para garantir a segurança da memória (CS8988). - Forneça uma declaração de implementação para cada membro parcial que tenha uma declaração de definição, pois os membros parciais exigem que ambas as partes sejam concluídas (CS9275, CS9276).
- Verifique se cada membro parcial tem exatamente uma declaração de definição e uma declaração de implementação, pois várias declarações criariam ambiguidade sobre qual definição ou implementação usar (CS9277, CS9278).
Métodos parciais
-
CS0501: "Função de membro" deve declarar um corpo porque não está marcada com
abstract,externoupartial - CS0755: As duas declarações de métodos parciais devem ser métodos de extensão ou nenhuma delas poderá ser desse tipo.
- CS0756: Um método parcial não pode ter várias declarações de definição.
- CS0757: Um método parcial não pode ter várias declarações de implementação.
- CS0759: nenhuma declaração de definição encontrada para implementar a declaração de método parcial.
-
CS0761: declarações parciais de métodos de
method<T>têm restrições inconsistentes de parâmetros de tipo. - CS0762: não é possível criar um delegado a partir do método porque ele é um método parcial sem uma declaração de implementação
- CS1067: as declarações parciais devem ter os mesmos nomes de parâmetros de tipo e modificadores de variância na mesma ordem.
- CS8796: o método parcial deve ter modificadores de acessibilidade porque tem um tipo de retorno não nulo.
- CS8795: O membro parcial deve ter uma parte de implementação porque possui modificadores de acessibilidade.
-
CS8797: o método parcial deve ter modificadores de acessibilidade porque possui parâmetros "
out". -
CS8798: o método parcial deve ter modificadores de acessibilidade porque tem um modificador "
virtual" , "override", "sealed", "new", or "extern". - CS8817: ambas as declarações de método parcial devem ter o mesmo tipo de retorno.
Esses erros ocorrem quando suas declarações de método parcial violam as regras de métodos parciais.
- Adicione o
partialmodificador à declaração do método ou forneça um corpo do método, pois os métodos sem implementações devem ser marcados comoabstract,externoupartial(CS0501). - Verifique se ambas as declarações incluem ou omitem a sintaxe do método de extensão (
thismodificador no primeiro parâmetro) consistentemente, pois a combinação de declarações de extensão e não extensão cria assinaturas de método incompatíveis (CS0755). - Remova declarações de definição duplicadas (as declarações sem corpos de método), pois cada método parcial pode ter apenas uma definição (CS0756).
- Remova declarações de implementação duplicadas (as declarações com corpos de método), pois cada método parcial pode ter apenas uma implementação (CS0757).
- Adicione uma declaração de definição correspondente para cada declaração de implementação, pois cada método parcial com um corpo deve ter uma declaração de assinatura correspondente sem um corpo (CS0759).
- Verifique se as restrições de parâmetro de tipo correspondem em ambas as declarações, pois restrições inconsistentes criam ambiguidade sobre quais tipos são válidos para o método genérico (CS0761).
- Forneça uma declaração de implementação antes de criar um delegado do método, pois os delegados exigem uma implementação de método concreta para referência (CS0762).
- Para métodos parciais genéricos, verifique se ambas as declarações usam os mesmos nomes de parâmetro de tipo e modificadores de variação na mesma ordem, pois assinaturas genéricas incompatíveis criam declarações de método incompatíveis (CS1067).
- Adicione modificadores de acessibilidade explícitos (como
public,private,protectedouinternal) quando o método retorna um tipo diferentevoid, porque métodos parciais não nulos devem ter acessibilidade definida para serem chamáveis de outro código (CS8796). - Forneça uma declaração de implementação quando os modificadores de acessibilidade forem especificados, pois os métodos parciais acessíveis devem ter implementações a serem invocadas (CS8795).
- Adicione modificadores de acessibilidade explícitos quando o método tiver
outparâmetros, pois os métodos com parâmetros externos devem ter acessibilidade definida para serem chamáveis (CS8797). - Adicione modificadores de acessibilidade explícitos ao usar
virtual,override,sealed,newouexternmodificadores, porque esses modificadores afetam a visibilidade do método e exigem especificação de acessibilidade explícita (CS8798). - Verifique se ambas as declarações especificam o mesmo tipo de retorno, pois diferentes tipos de retorno criam assinaturas de método incompatíveis (CS8817).
Propriedades parciais
- CS9248: a propriedade parcial deve ter uma parte de implementação.
- CS9249: a propriedade parcial deve ter uma parte de definição.
- CS9250: uma propriedade parcial pode não ter várias declarações de definição e não pode ser uma propriedade automática.
- CS9251: uma propriedade parcial não pode ter várias declarações de implementação
- CS9252: o acessador de propriedade deve ser implementado porque ele é declarado na parte de definição
- CS9253: o acessador de propriedade não implementa nenhum acessador declarado na parte de definição
- CS9254: o acessador de propriedade deve corresponder à parte de definição
- CS9255: ambas as declarações de propriedade parcial devem ter o mesmo tipo.
- CS9257: ambas as declarações de propriedade parciais devem ser obrigatórias ou nenhuma pode ser obrigatória
Sua propriedade parcial ou declaração de indexador pode fazer com que o compilador emita o seguinte aviso:
- CS9256: as declarações de propriedade parcial têm diferenças de assinatura.
Esses erros e avisos ocorrem quando suas declarações parciais de propriedade ou indexador violam as regras de propriedades parciais.
- Forneça uma declaração de implementação para cada declaração de definição de propriedade parcial, pois as propriedades parciais exigem que ambas as partes sejam concluídas (CS9248).
- Forneça uma declaração de definição para cada declaração de implementação de propriedade parcial, pois cada implementação deve ter uma definição correspondente (CS9249).
- Remova declarações de definição duplicadas e evite usar a sintaxe de propriedade automática na declaração de implementação, pois cada propriedade parcial pode ter apenas uma definição e a implementação deve incluir corpos de acessador explícitos (CS9250).
- Remova declarações de implementação duplicadas, pois cada propriedade parcial pode ter apenas uma implementação (CS9251).
- Implemente todos os acessadores declarados na declaração de definição, pois a declaração de implementação deve fornecer corpos para cada acessador (get, set ou init) especificado na definição (CS9252).
- Remova os acessadores da declaração de implementação que não foram declarados na declaração de definição, pois você só pode implementar acessadores que foram declarados na parte de definição (CS9253).
- Verifique se as assinaturas do acessador correspondem entre ambas as declarações, incluindo o tipo de acessador (get, set ou init) e quaisquer modificadores, pois definições de acessador inconsistentes criam declarações de propriedade incompatíveis (CS9254).
- Verifique se ambas as declarações especificam o mesmo tipo de propriedade, pois diferentes tipos criam assinaturas de propriedade incompatíveis (CS9255).
- Verifique se ambas as declarações incluem ou omitem o
requiredmodificador consistentemente, pois a combinação de declarações necessárias e não necessárias cria ambiguidade sobre se a propriedade deve ser inicializada (CS9257). - Examine e corrija quaisquer incompatibilidades de assinatura entre as declarações de declaração e implementação, pois diferenças nos modificadores de acessibilidade, tipos de retorno ou listas de parâmetros (para indexadores) podem causar comportamento inesperado (CS9256).
Eventos parciais e construtores
- CS9279: O evento parcial não pode ter inicializador.
- CS9280: somente a declaração de implementação de um construtor parcial pode ter um inicializador.
Você declarou um inicializador na declaração de definição de um construtor parcial ou em uma declaração de evento parcial. Remova o inicializador.