programing tip

C # 6“정적 사용”기능을 어떻게 사용합니까?

itbloger 2020. 7. 29. 07:53
반응형

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 블로그의 예가 올바르지 않습니까? 왜 작동하지 않습니까?


블로그 게시물이 이제 최신 업데이트를 반영하도록 업데이트되었지만 블로그가 다운 될 경우를 대비 한 스크린 샷이 있습니다.

블로그


해당 블로그 게시물이 작성된 이후 구문이 약간 변경된 것으로 보입니다. 오류 메시지에서 알 수 있듯이 staticinclude 문에 다음을 추가 하십시오.

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

반응형