C # 6 의 몇 가지 새로운 기능 , 특히
“using static”을 살펴보고 있습니다.
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
‘지시문은 네임 스페이스에만 적용 할 수 있습니다. ‘Console
‘은 네임 스페이스 가 아닌 유형입니다.using static
대신 ‘ ‘지시문을 고려하십시오. “
저는 Visual Studio 2015를 사용하고 있으며 빌드 언어 버전을 “C # 6.0″으로
무엇을 제공합니까? msdn 블로그의 예가 올바르지 않습니까? 왜 이것이 작동하지 않습니까?
이제 블로그 게시물이 최신 업데이트를 반영하도록 업데이트되었지만 다음은 블로그가 다운되는 경우를 대비 한 스크린 샷입니다.
답변
해당 블로그 게시물이 작성된 이후 구문이 약간 변경된 것으로 보입니다. 오류 메시지에서 알 수 있듯이 static
include 문에 다음을 추가 합니다.
using static System.Console;
// ^
class Program
{
static void Main()
{
WriteLine("Hello world!");
WriteLine("Another message");
}
}
그런 다음 코드가 컴파일됩니다.
C # 6.0에서는 static
.
예를 들어 다음을 고려하십시오 System.Math
.
public static class Math {
public const double PI = 3.1415926535897931;
public static double Abs(double value);
// <more stuff>
}
때 using static System.Math
, 당신은 사용할 수 있습니다 Abs();
.
그러나 PI
정적 멤버가 아니기 때문에 여전히 접두사를 사용해야합니다 : Math.PI;
.
C # 버전 7.2부터는 그렇지 않습니다. const
같은 값도 PI
사용할 수 있습니다.
답변
static
A의 키워드using
명령문 지정된 유형 (및 중첩 유형) 만 가져옵니다. 또한 더 이상 유형 이름을 제공하지 않아야합니다. 따라서 사용에 정적을 추가하십시오.
참고 :이 기능은 두 클래스가 논리적으로 밀접하게 관련된 경우에만 사용하십시오. 그렇지 않으면 코드를 읽기가 매우 어렵습니다.