Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro no codigo: CS8703

Esse codigo fica dando esse erro, mas eu não sei como resolverInsira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

João,

Acredito que tem duas maneiras de resolver isso.

    • Retire a palavra-chave "public" que é o modificador de acesso para a variável;
    • (Recomendado) Atualize o C# da versão 7.3 para a versão 8.0. A maneira mais fácil é atualizando a versão do framework;

Por favor, leia os links abaixo:

==========================================================

Changing the C# version in Visual Studio 2019

https://stackoverflow.com/questions/60247122/changing-the-c-sharp-version-in-visual-studio-2019

==========================================================

Controle de versão da linguagem C#

Padrões

O compilador determina um padrão com base nestas regras:

Estrutura de destinoversionPadrão da versão da linguagem C#
.NET7.xC# 11
.NET6.xC# 10
.NET5.xC# 9.0
.NET Core3.xC# 8.0
.NET Core2.xC# 7.3
.NET Standard2.1C# 8.0
.NET Standard2.0C# 7.3
.NET Standard1.xC# 7.3
.NET FrameworkallC# 7.3

Importante

O novo modelo de projeto do Visual Studio 2017 adicionou uma latest entrada a novos arquivos de projeto. Se você atualizar a estrutura de destino para esses projetos, eles substituirão o comportamento padrão. Você deve remover o latest arquivo de projeto ao atualizar o SDK do .NET. Em seguida, seu projeto usará a versão do compilador recomendada para sua estrutura de destino. Você pode atualizar a estrutura de destino para acessar recursos de linguagem mais recentes.

https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/configure-language-version

==========================================================

C# 7.1, 7.2 and 7.3 - New Features (Updated)

https://www.dotnetcurry.com/csharp/1437/csharp-7-1-7-2-7-3-new-features

==========================================================

Novidades no C# 8.0

O c# 8,0 adiciona os seguintes recursos e aprimoramentos à linguagem C#:

...

https://docs.microsoft.com/pt-br/dotnet/csharp/whats-new/csharp-8

==========================================================

Referência de C#

Esta seção fornece o material de referência sobre palavras-chave do C#, operadores, caracteres especiais, diretivas de pré-processador, opções de compilador e erros de compilador e avisos.

https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/

==========================================================

The modifier is not valid in C#.Use language version and greater

Issue Description

The modifier ‘public’ is not valid for this item in C# 7.3. Please use the language version 8 or greater.

Feature ‘default literal’ is not available in C# [version]. Please use the language version or greater.

https://www.thecodebuzz.com/modifier-not-valid-this-item-c-use-language-version-greater/

==========================================================

Compilation Error: "The modifier 'public' is not valid for this item" while explicitly implementing the interface

E quando o modificador de acesso é forçado, você não pode adicionar um.

Da mesma forma, na própria interface, todos os membros são públicos . Se você tentar adicionar um modificador dentro de uma interface, receberá um erro semelhante.

https://stackoverflow.com/questions/2669031/compilation-error-the-modifier-public-is-not-valid-for-this-item-while-expl

==========================================================

DETALHE!

De acordo com cada TIPO de projeto, as propriedades são diferentes...

Veja, um projeto Windows Forms:

Windows Form

... e um projeto ASP.Net.

Projeto ASP.Net

Eu não consegui mudar, pois ambos estão atrelados ao framework... eu estou usando de agora em diante o ".Net 6". Acho que entendi... deve ser porque estou usando o "preview" (dá acesso explícito à versões prévias).

<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
 </PropertyGroup>
</Project>

Lembrei disto também:

No C# os modificadores de acesso mais utilizados são:

  • public: acessível de qualquer ponto do código, ou seja não impõe restrições;
  • private: acessível somente dentro do contexto onde foi declarado, ou seja, um membro privado dentro de uma classe só é acessível dentro da própria classe;
  • protected: o elemento é acessível dentro da classe e suas derivadas;
  • internal: é o padrão no C#. Caso nenhum modificador seja declarado, definirá a acessibilidade do elemento dentro do executável ou dll onde foi declarado;
  • protected internal: é proveniente união dos modificadores protected e internal.

[]'s,

Fabio I.