Ich schaue mir einige der neuen Funktionen in C # 6 an, insbesondere "Verwenden von Statik" .
Die Verwendung von static ist eine neue Art der using-Klausel, mit der Sie statische Elemente von Typen direkt in den Bereich importieren können.
(Unten im Blogbeitrag)
Die Idee ist wie folgt, gemäß ein paar Tutorials, die ich gefunden habe,
anstatt:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello world!");
Console.WriteLine("Another message");
}
}
Sie können die wiederholte Console
Anweisung mit der neuen C # 6-Funktion zur Verwendung statischer Klassen weglassen :
using System.Console;
// ^ `.Console` added.
class Program
{
static void Main()
{
WriteLine("Hello world!");
WriteLine("Another message");
} // ^ `Console.` removed.
}
Dies scheint jedoch bei mir nicht zu funktionieren. Ich erhalte eine Fehlermeldung in der using
Erklärung:
"Eine '
using namespace
' Direktive kann nur auf Namespaces angewendet werden. 'Console
' Ist ein Typ, kein Namespace. Betrachten Sieusing static
stattdessen eine ' ' Direktive."
Ich verwende Visual Studio 2015 und habe die Build-Sprachversion auf "C # 6.0" eingestellt.
Was gibt? Ist das Beispiel des msdn-Blogs falsch? Warum funktioniert das nicht?
Der Blog-Beitrag wurde jetzt aktualisiert, um die neuesten Updates wiederzugeben. Hier ist jedoch ein Screenshot für den Fall, dass der Blog ausfällt:
System.Math
speziell mitMath.PI
. Wenn ichusing static System.Math
Methoden wieSqrt()
Arbeit verwende, aber keine Konstante wiePI
. Ich muss weiter schreibenMath.PI
oder der Code wird nicht kompiliert. Ich bin gespannt, warum das nicht funktioniert. Soll ich dazu eine neue Frage stellen?PI
ist kein statisches Mitglied derMath
Klasse. Es ist eine Konstante. Einfach ausgedrückt: Das Mitglied muss als deklariert werdenstatic
.using const System.Math;
:)Das
static
Schlüsselwort in einerusing
Anweisung importiert nur den angegebenen Typ (und die verschachtelten Typen). Außerdem dürfen Sie den Typnamen nicht mehr angeben. Fügen Sie Ihrer Verwendung einfach Statik hinzu.Hinweis: Verwenden Sie diese Funktion nur, wenn die beiden Klassen logisch eng miteinander verbunden sind. Andernfalls wird das Lesen des Codes ziemlich schwierig.
quelle