मैं C#6 "स्टेटिक का उपयोग कर" सुविधा का उपयोग कैसे करूं?




visual-studio-2015 static (2)

एक स्टेटमेंट स्टेटमेंट पर static कीवर्ड केवल एक, निर्दिष्ट प्रकार (और यह नेस्टेड प्रकार) आयात करेगा। इसके अलावा आपको अब टाइप नाम नहीं देना चाहिए। तो बस अपने उपयोग के लिए स्थैतिक जोड़ें।

नोट: कृपया इस सुविधा का उपयोग केवल तब करें जब दो वर्ग तार्किक रूप से निकटता से संबंधित हों, अन्यथा यह कोड को बहुत कठिन बनाता है।

मैं सी # 6 में नई सुविधाओं के एक जोड़े को देख रहा हूं, विशेष रूप से, "स्थिर का उपयोग कर"

स्टेटिक का उपयोग करना क्लॉज का उपयोग करने का एक नया प्रकार है जो आपको सीधे प्रकार के स्थिर सदस्यों को दायरे में आयात करने देता है।
(ब्लॉग पोस्ट के नीचे)

यह विचार निम्नानुसार है, मैंने पाया कुछ ट्यूटोरियल के अनुसार,
के बजाय:

using System;

class Program 
{ 
    static void Main() 
    { 
        Console.WriteLine("Hello world!"); 
        Console.WriteLine("Another message"); 
    } 
}

आप स्थिर कक्षाओं का उपयोग करते हुए नई C # 6 सुविधा का उपयोग करते हुए दोहराया Console स्टेटमेंट को छोड़ सकते हैं:

using System.Console;
//           ^ `.Console` added.
class Program 
{ 
    static void Main() 
    { 
        WriteLine("Hello world!"); 
        WriteLine("Another message"); 
    } // ^ `Console.` removed.
}

हालाँकि, यह मेरे लिए काम नहीं करता है। मुझे यह कहते हुए using करने में त्रुटि हो रही है:

" using namespace निर्देश 'केवल नामस्थानों पर लागू किया जा सकता है;" Console ' एक प्रकार का नामस्थान नहीं है। इसके बजाय ' using static ' निर्देश using static पर विचार करें। "

मैं दृश्य स्टूडियो 2015 का उपयोग कर रहा हूं, और मेरे पास "C # 6.0" के लिए निर्मित भाषा संस्करण है

क्या देता है? क्या msdn ब्लॉग का उदाहरण गलत है? यह काम क्यों नहीं करता है?

नवीनतम अपडेट को प्रतिबिंबित करने के लिए ब्लॉग पोस्ट को अब अपडेट कर दिया गया है, लेकिन ब्लॉग के नीचे चले जाने की स्थिति में यहां स्क्रीनशॉट है:


ऐसा प्रतीत होता है कि उन ब्लॉग पोस्ट के लिखे जाने के बाद से वाक्यविन्यास थोड़ा बदल गया है। जैसा कि त्रुटि संदेश बताता है, अपने स्टेटमेंट में static जोड़ें:

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(); उपयोग कर सकते हैं Abs();
हालाँकि, आपको अभी भी PI को उपसर्ग करना होगा क्योंकि यह एक स्थिर सदस्य नहीं है: Math.PI;

C # 7.2 (और शायद कम) में, यह मामला नहीं होना चाहिए, PI जैसे const मानों का भी उपयोग किया जा सकता है।







c#-6.0