Rzucam okiem na kilka nowych funkcji w C # 6, a konkretnie na „używanie statyczne” .
using static to nowy rodzaj klauzuli using, która umożliwia importowanie statycznych elementów członkowskich typów bezpośrednio do zakresu.
(U dołu wpisu na blogu)
Pomysł jest następujący, zgodnie z kilkoma samouczkami, które znalazłem,
Zamiast:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello world!");
Console.WriteLine("Another message");
}
}
Możesz pominąć powtarzającą się Consoleinstrukcję, korzystając z nowej funkcji C # 6 używającej klas statycznych:
using System.Console;
// ^ `.Console` added.
class Program
{
static void Main()
{
WriteLine("Hello world!");
WriteLine("Another message");
} // ^ `Console.` removed.
}
Jednak wydaje mi się, że to nie działa. Otrzymuję błąd w usingwyciągu, mówiąc:
using namespaceDyrektywę „ ” można zastosować tylko do przestrzeni nazw; „Console” jest typem, a nie przestrzenią nazw.using staticZamiast tego rozważ dyrektywę „” ”
Używam programu Visual Studio 2015 i mam wersję języka kompilacji ustawioną na „C # 6.0”
Co daje? Czy przykład bloga msdn jest nieprawidłowy? Dlaczego to nie działa?
Wpis na blogu został zaktualizowany, aby odzwierciedlał najnowsze aktualizacje, ale oto zrzut ekranu na wypadek, gdyby blog przestał działać:

System.Mathkonkretnie zMath.PI. Kiedy używamusing static System.Math, metody takie jakSqrt()praca, ale nie stałePI. Muszę kontynuować pisanieMath.PIlub kod się nie kompiluje. Ciekaw jestem, dlaczego to nie działa. Czy powinienem zadać nowe pytanie w tej sprawie?