C # 6“정적 사용”기능을 어떻게 사용합니까?
C # 6 의 몇 가지 새로운 기능 , 특히 "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
키워드 using
는 하나의 지정된 유형 (및 중첩 된 유형) 만 가져옵니다. 또한 더 이상 유형 이름을 지정해서는 안됩니다. 따라서 사용에 정적을 추가하십시오.
참고 :이 기능은 두 클래스가 논리적으로 밀접한 관련이있는 경우에만 사용하십시오. 그렇지 않으면 코드를 읽기가 어렵습니다.
참고 URL : https://stackoverflow.com/questions/31852389/how-do-i-use-the-c6-using-static-feature
'programing tip' 카테고리의 다른 글
상위 div를 기준으로 '위치 : 고정'div의 너비 설정 (0) | 2020.07.29 |
---|---|
알 수없는 확장명을 포함하는 IPv6 확장 헤더 구문 분석 (0) | 2020.07.29 |
NodeJS UnhandledPromiseRejectionWarning (0) | 2020.07.29 |
sys.path / PYTHONPATH에 디렉토리 추가 (0) | 2020.07.29 |
클래스 속성을 만드는 방법? (0) | 2020.07.29 |