Estou dando uma olhada em alguns dos novos recursos no C # 6, especificamente, "usando estática" .
using static é um novo tipo de cláusula using que permite importar membros estáticos de tipos diretamente para o escopo.
(Parte inferior da postagem do blog)
A ideia é a seguinte, de acordo com alguns tutoriais que encontrei, em
vez de:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello world!");
Console.WriteLine("Another message");
}
}
Você pode omitir a Console
instrução repetida , usando o novo recurso C # 6 de usar classes estáticas:
using System.Console;
// ^ `.Console` added.
class Program
{
static void Main()
{
WriteLine("Hello world!");
WriteLine("Another message");
} // ^ `Console.` removed.
}
No entanto, isso não parece estar funcionando para mim. Estou recebendo um erro na using
declaração, dizendo:
"Uma
using namespace
diretiva ' ' só pode ser aplicada a namespaces; 'Console
' é um tipo, não um namespace. Considere umausing static
diretiva ' ' em vez disso"
Estou usando o Visual Studio 2015 e tenho a versão da linguagem de compilação definida como "C # 6.0"
O que da? O exemplo do blog do msdn está incorreto? Por que isso não funciona?
A postagem do blog agora foi atualizada para refletir as atualizações mais recentes, mas aqui está uma captura de tela, caso o blog caia:
System.Math
, especificamenteMath.PI
. Quando eu usousing static System.Math
, os métodos gostam deSqrt()
funcionar, mas não uma constantePI
. Tenho que continuar escrevendoMath.PI
ou o código não compila. Estou curioso para saber por que isso não funciona. Devo enviar uma nova pergunta para isso?PI
não é um membro estático daMath
classe. É uma constante. Simplificando: o membro deve ser declarado comostatic
.using const System.Math;
:)A
static
palavra-chave em umausing
instrução importará apenas aquele tipo especificado (e seus tipos aninhados). Além disso, você não deve mais fornecer o nome do tipo. Portanto, basta adicionar estática ao seu uso.Nota: Use este recurso apenas quando as duas classes estiverem logicamente relacionadas, caso contrário, torna a leitura do código muito difícil.
fonte