Novidades do C# 11: File-scoped types

O C# 11 traz também uma nova possibilidade para definir o escopo de uma classe/tipo, além das implementações já existentes e baseadas no uso de modificadores como public, private, internal

Trata-se da funcionalidade batizada como File-scoped types (também chamada de File local types), com a qual podemos criar classes/tipos cujo escopo está restrito ao arquivo .cs em que tais construções foram definidas. Para isto utilizaremos a palavra-chave file na declaração de um tipo.

Supondo um mesmo projeto (ExemploFileScopedType) em foram definidas as classes ClasseTeste1 e Mensagem num arquivo chamado Teste1.cs:

E os tipos ClasseTeste2 e Mensagem, desta vez em outro arquivo chamado Teste2.cs:

Obviamente que as 2 declarações de Mensagem pertencentes a um mesmo namespace (ExemploFileScopedType) resultarão em erros durante a compilação do projeto:

Esses mesmos erros serão apontados se utilizarmos o Visual Studio 2022:

Clique nesta imagem para visualizar com uma melhor resolução

Podemos corrigir este problema substituindo em Teste2.cs o modificador public da classe Mensagem por file, como indicado na próxima listagem:

Com isto o Visual Studio 2022 não acusará mais erros:

Clique nesta imagem para visualizar com uma melhor resolução

Na listagem a seguir temos um exemplo de utilização dos tipos apresentados nas listagens anteriores (no arquivo Program.cs):

A execução deste exemplo trará um resultado similar ao da imagem seguinte:

O código desse projeto foi disponibilizado no GitHub:

Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

--

--

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker