C# 8.0 - Static Local Functions
Hoje vou apresentar com mais detalhes o novo recurso static local functions da versão 8.0 da linguagem C#. |
Temos muitas novidades na versão 8.0 da linguagem C# e eu já apresentei um resumo das principais neste artigo: C# 8.0 - As novidades da nova versão
O novo recurso das funções estáticas locais permite que você adicione o modificador static às funções locais de forma a garantir que a função local não acesse (ou referencie) quaisquer variáveis do escopo incluído.(definições de métodos, construtores, variáveis, etc.)
Para poder usar os novos recursos basta instalar a última versão do Visual Studio Community 2019 e criar um projeto do tipo Console Application para .NET Core:
A seguir temos um exemplo de código usando a sintaxe do C# 7.0 :
Observe que na função local GetNome() estamos conseguindo acessar as variáveis nome e sobrenome do escopo do método Main() onde declaramos a função local.
Vamos então aplicar a nova sintaxe do C# 8.0, incluindo a palavra static na declaração da função local GetNome():
Observe que temos a mensagem de erro: A static local function cannot contain a reference to ´nome'.
Pois é assim que o recurso funciona.
Podemos contornar o erro ajustando o código conforme abaixo:
Aqui GetNome() pode ser static, e não ocorrem os erros, pois, ela não acessa mais qualquer variável no escopo local.
Concluindo temos que:
Aguarde mais artigos sobre as novidades do C# 8.0.
"Porque o
Senhor é justo, e ama a justiça; o seu rosto olha para os retos."
Salmos 11:7
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
C# - StreamReader, StringReader e TextReader . Qual a ... - Macoratti
C# - Imprimindo um arquivo texto - Macoratti
C# - Usando OpenFileDialog - Macoratti
C# - Formatando arquivos textos - Macoratti
C# - Convertendo valores para o formato monetário
C# - Lendo e escrevendo em arquivos textos e binários - Macoratti
VB.NET - Conversão entre tipos de variáveis - Macoratti
C# - Localizando Arquivos - Macoratti