Я рассматриваю несколько новых функций C # 6, в частности, «использование статики» .
using static - это новый вид предложения using, который позволяет импортировать статические члены типов непосредственно в область видимости.
(Внизу сообщения в блоге)
Идея заключается в следующем, согласно паре найденных мной руководств,
вместо:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello world!");
Console.WriteLine("Another message");
}
}
Вы можете опустить повторяющийся Console
оператор, используя новую функцию C # 6 использования статических классов:
using System.Console;
// ^ `.Console` added.
class Program
{
static void Main()
{
WriteLine("Hello world!");
WriteLine("Another message");
} // ^ `Console.` removed.
}
Однако, похоже, это не работает для меня. Я получаю сообщение об ошибке в using
заявлении:
using namespace
Директива "A" может применяться только к пространствам имен; "Console
" - это тип, а не пространство имен.using static
Вместо этого рассмотрите директиву " " "
Я использую Visual Studio 2015, и у меня установлена версия языка сборки «C # 6.0».
Что дает? Пример блога msdn неверен? Почему это не работает?
Сообщение в блоге теперь обновлено, чтобы отразить последние обновления, но вот скриншот на случай, если блог выйдет из строя:
System.Math
, в частностиMath.PI
. Когда я используюusing static System.Math
, такие методыSqrt()
работают, но не постоянныеPI
. Мне нужно продолжить писать,Math.PI
иначе код не компилируется. Мне любопытно, почему это не работает. Следует ли мне задать для этого новый вопрос?PI
не является статическим членомMath
класса. Это константа. Проще говоря: член должен быть объявлен какstatic
.using const System.Math;
:)static
Ключевое слово вusing
отчете будет импортировать только один, указанный тип (и это вложенные типы). Кроме того, вы больше не должны указывать имя типа. Так что просто добавьте статику к своему использованию.Примечание. Используйте эту функцию только в том случае, если два класса логически тесно связаны, иначе чтение кода будет затруднено.
источник