2010-01-24 23 views
8

निम्नलिखित कोड पर विचार करें:का उपयोग स्ट्रिंग स्थिरांक

public class TextType { 

    public TextType(String text) { 
     underlyingString = text; 
    } 

    public static implicit operator String(TextType text) { 
     return text.underlyingString; 
    } 

    private String underlyingString; 
} 

TextType text = new TextType("Something"); 
String str = text; // This is OK. 

लेकिन मैं यदि संभव हो तो, निम्न कार्य करें सक्षम होना चाहते हैं।

TextType textFromStringConstant = "SomeOtherText"; 

मैं TextType अंतर्निहित ऑपरेटर अधिभार के साथ स्ट्रिंग वर्ग विस्तार नहीं कर सकते, लेकिन वहाँ एक और वर्ग (जो एक विधि या कुछ द्वारा नियंत्रित किया जाता) को एक शाब्दिक स्ट्रिंग आवंटित करने के लिए किसी भी तरह से है?

स्ट्रिंग एक संदर्भ प्रकार है, इसलिए जब उन्होंने सी # विकसित किया तो उन्हें स्पष्ट रूप से कक्षा में एक स्ट्रिंग अक्षर प्राप्त करने के लिए कुछ तरीके का उपयोग करना पड़ा। मुझे उम्मीद है कि यह भाषा में हार्डकोड नहीं है।

+0

विवरण के लिए विनिर्देश के खंड 10.10.3 देखें। –

उत्तर

9
public static implicit operator TextType(String text) { 
    return new TextType(text); 
} 
+0

टेक्स्ट को ठीक करें! = मान - आप तेज़ थे :) –

+1

मुझे विश्वास नहीं है कि मैं कैसे चूक गया कि ऑपरेटर ओवरलोड दोनों तरीकों से चला जाता है। मुझे लगता था कि विधि स्ट्रिंग क्लास से संबंधित होगी ... धन्यवाद। –

6

को अपनी कक्षा में

public static implicit operator TextType(string content) { 
    return new TextType(content); 
} 

जोड़ें :)

संबंधित मुद्दे