Qual a Visibilidade padrão do C#

Quando eu crio uma Classe , Método , Atributo / propriedade sem especificar a visibilidade
como public , private , internal , protected .
Qual é o Default (Padrão do C#) para a visibilidade de cada um?

1 curtida

Você pesquisou antes de perguntar?

Sim eu pesquisei e achei essa explicação e entendi que o padrão das classes são a visibilidade Internal , mas continuo em dúvida sobre o padrão para os métodos e Atributos /propriedades.

.

Por isso fiz a pergunta aqui no GUJ.

1 curtida

O padrão é internal para tudo, se não for especificado e pode perguntar o quanto quiser aqui o é local, aqui também pode ser feito igual pesquisa, se pergunta quem quiser responde…

Reforçando

Tudo é internal se não for especificado explicitamente

2 curtidas

Tecnicamente sim, ele ta pesquisando fazendo a pergunta.

2 curtidas

Obrigado por esclarecer minha dùvida

Amigo eu andei pesquisando em outras fontes e achei na documentação do C# o seguinte

internal

  • Classes

private

  • Atributos /Métodos

Esse é o padrão do C#

não está correto, o correto é que o padrão é internal e existem outros modificadores de acesso…

Se está confundindo !

Regra: o padrão é internal se você não explicitar

Na documentação do C# ta dizendo:

As classes e structs que são declarados dentro de um namespace (em outras palavras, que não estão aninhadas dentro de outras classes ou structs) podem ser públicos ou internos.
Interno é o padrão se nenhum modificador de acesso for especificado

O nível de acesso para membros de classes e membros de struct, incluindo classes e structs aninhados, é privado por padrão.

Então eu conclui o que eu disse antes.

Internal para Classes & Structs
Private para Atributos /Métodos e propriedades

1 curtida

Correção:


internal é para classes e os membros e métodos são private.

Eu confundi achando que era só classes depois li a pergunta novamente.

1 curtida