Start Debugging
2023-03-18 Atualizado 2023-11-05 csharp Edit on GitHub

C# 11 - modificador de acesso file e tipos com escopo de arquivo

Aprenda como o modificador file do C# 11 restringe o escopo de um tipo ao arquivo em que é declarado, ajudando a evitar colisões de nomes com source generators.

O modificador file restringe o escopo e a visibilidade de um tipo ao arquivo em que ele é declarado. Isso é especialmente útil quando você quer evitar colisões de nomes entre tipos, como no caso de tipos gerados por source generators.

Um exemplo rápido:

file class MyLocalType { }

Em termos de restrições, temos o seguinte:

Por outro lado:

Implementando implicitamente uma interface com escopo de arquivo

Uma classe pública pode implementar uma interface com escopo de arquivo desde que ambas estejam definidas no mesmo arquivo. No exemplo abaixo, você tem a interface com escopo de arquivo ICalculator implementada pela classe pública Calculator.

file interface ICalculator
{
    int Sum(int x, int y);
}

public class Calculator : ICalculator
{
    public int Sum(int x, int y) => x + y;
}

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Voltar