Sto dando un'occhiata ad un paio di new features in C# 6, in particolare, "using static".Come si usa la funzione C# 6 "Uso statico"?
utilizzando statica è un nuovo tipo di utilizzare la clausola che consente di importare membri statici di tipi direttamente nel campo di applicazione.
(in fondo al post del blog)
L'idea è la seguente, secondo un paio di tutorial che ho trovato,
Invece di:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello world!");
Console.WriteLine("Another message");
}
}
è possibile omettere il ripetuto Console
, usando la nuova caratteristica C# 6 dell'uso di classi statiche:
using System.Console;
// ^`.Console` added.
class Program
{
static void Main()
{
WriteLine("Hello world!");
WriteLine("Another message");
} //^`Console.` removed.
}
Tuttavia, questo non sembra funzionare per me. Sto ottenendo un errore sulla dichiarazione using
, dicendo:
'
using namespace
' direttiva "A può essere applicato solo a spazi dei nomi, 'Console
' è un non di tipo uno spazio dei nomi consideri un 'using static
' direttiva, invece. "
sto usando visual Studio 2015, e ho la versione in lingua accumulo impostata "C# 6.0"
cosa succede? L'esempio del blog di msdn è errato? Perché non funziona?
Sto riscontrando un problema simile, ma con 'System.Math', in particolare' Math.PI'. Quando uso 'usando statico System.Math', metodi come' Sqrt() 'funzionano ma non una costante come' PI'. Devo continuare a scrivere 'Math.PI' o il codice non viene compilato. Sono curioso di sapere perché questo non funziona. Devo presentare una nuova domanda per questo? – skwear
@skwear: sembra il materiale per una nuova domanda, sì. – Cerbrus
Come risposta rapida alla domanda di @ skwear: _ "l'uso di static è un nuovo tipo di clausola using che consente di importare membri __static__ <...>" _. 'PI' non è un membro _static_ della classe' Math'. È una costante In poche parole: il membro deve essere dichiarato come 'statico'. – Cerbrus