C# 10 - Usando namespaces com escopo de arquivo (File Scoped Namespaces)
Hoje veremos o novo recurso File Scoped Namespaces do C# 10. |
O novo recurso do C# 10 chamado de File Scoped Namespaces permite utilizar um namespace para um arquivo inteiro ao invés de usar um bloco {}.
Vamos supor que você tem o código abaixo definindo a classe Aluno :
using System.ComponentModel.DataAnnotations;
namespace C10_Namespaces
{
public partial class Aluno
{
[Key]
public int Id { get; set; }
[Required]
[StringLength(80, ErrorMessage = "")]
public string Nome { get; set; }
[Required]
public int Idade { get; set; }
}
}
|
Com novo recurso File Scoped Namespaces do C# 10 podemos agora definir o namespace da seguinte forma:
using System.ComponentModel.DataAnnotations;
namespace C10_Namespaces;
public partial class Aluno
{
[Key]
public int Id { get; set; }
[Required]
[StringLength(80, ErrorMessage = "")]
public string Nome { get; set; }
[Required]
public int Idade { get; set; }
}
|
Agora a declaração pode ser feita usando a palavra namespace seguida do nome e ponto e vírgula(;) e assim não precisamos envolver o bloco de código entre colchetes {} : namespace C10_Namespaces;
Com isso o namespace terá o escopo do arquivo inteiro e a invocação de objetos dentro do namespace continua a mesma:
var aluno = new C10_Namespaces.Aluno();
O recurso presume que tudo o que está dentro desse arquivo (portanto, com escopo de arquivo) está dentro do mesmo namespace.
Uma desvantagem desta implementação é que ao usar namespaces a nível de arquivo você não pode ter dois namespaces no mesmo arquivo o que é algo muito difícil de acontecer.
E estamos conversados...
"Bendito o Deus e Pai de nosso Senhor
Jesus Cristo, o qual nos abençoou com todas as bênçãos espirituais nos lugares
celestiais em Cristo; Como também nos elegeu nele antes da fundação do
mundo, para que fôssemos santos e irrepreensíveis diante dele em amor;"
Efésios 1:3,4
Referências:
NET 6 - Global Using : Usando o modificador global na diretiva using