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 Consoleinstruçã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 usingdeclaração, dizendo:
"Uma
using namespacediretiva ' ' só pode ser aplicada a namespaces; 'Console' é um tipo, não um namespace. Considere umausing staticdiretiva ' ' 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.PIou o código não compila. Estou curioso para saber por que isso não funciona. Devo enviar uma nova pergunta para isso?