2012-01-14 10 views
5

मेरे पास एक कक्षा है जो अनुरोध करता है कि जब इसे स्ट्रिंग कहा जाता है तो उसे स्ट्रिंग/प्रारंभ करने पर भेजा जाता है।अन्य कक्षाओं से स्ट्रिंग का उपयोग करना C#

class Checks 
{ 
    public Checks(string hostname2) 
    { 
     // logic here when class loads 

    } 

    public void Testing() 
    { 
     MessageBox.Show(hostname2); 
    } 
} 

कैसे यह वर्ग निर्माता में स्ट्रिंग "hostname2") लेने के लिए और इस स्ट्रिंग "चेकों" वर्ग में कहीं भी कहा जा करने की अनुमति के लिए संभव हो सकता है?

उदा। मैं फॉर्म 1 कक्षा से चेक (होस्टनाम 2) को कॉल करता हूं, अब जब चेक क्लास प्रारंभ होता है तो मैं अपने चेक क्लास में मेजबाननाम 2 स्ट्रिंग का उपयोग कर सकता हूं, साथ ही

उत्तर

7

कक्षा के अंदर एक सदस्य घोषित करें और सदस्य को पास किए गए मान को असाइन करें निर्माता के अंदर:

class Checks 
{ 
    private string hostname2; 

    public Checks(string hostname2) 
    { 
     this.hostname2 = hostname2; // assign to member 
    } 

    public void Testing() 
    { 
     MessageBox.Show(hostname2); 
    } 
} 

तुम भी, बाहर उपयोग कर सकते है यह एक संपत्ति बनाने के लिए की जरूरत है:

class Checks 
{ 
    public string Hostname2 { get; set; } 

    public Checks(string hostname2) 
    { 
     this.Hostname2 = hostname2; // assign to property 
    } 

    public void Testing() 
    { 
     MessageBox.Show(Hostname2); 
    } 
} 

गुण प्रथा के अनुसार बड़े अक्षर से शुरू करते हैं।

Checks c = new Checks("hello"); 
string h = c.Hostname2; // h = "hello" 

धन्यवाद एंडी को यह ओर इशारा करते हुए के लिए:: अब आप इसे इस तरह उपयोग कर सकते हैं अगर आप चाहते हैं संपत्ति केवल पढ़ने के लिए किया जाना है, बनाने के सेटर निजी:

public string Hostname2 { get; private set; } 
+2

आपको शायद यह भी इंगित करना चाहिए कि यदि आप कक्षाओं के बाहर मूल्य को बदलना चाहते हैं तो आपके पास सार्वजनिक गेटटर लेकिन निजी या संरक्षित सेटटर हो सकता है। – Andy

+0

आप निर्माण के समय को छोड़कर संशोधन को अस्वीकार करने के लिए निजी क्षेत्र पर 'readonly' कीवर्ड का भी उपयोग कर सकते हैं। अन्य वर्ग किसी भी निजी क्षेत्र तक पहुंच नहीं सकते हैं, लेकिन 'readonly' ** उसी ** वर्ग को इसके मूल्य को बाद में बदलने से रोकता है। दूसरे शब्दों में, यह आपको अपना इरादा निर्दिष्ट करने देता है। – TrueWill

2

आप कॉपी करने की जरूरत है एक वर्ग चर में निर्माता तर्क:

class Checks { 

    // this string, declared in the class body but outside 
    // methods, is a class variable, and can be accessed by 
    // any class method. 
    string _hostname2; 

    public Checks(string hostname2) { 
     _hostname2 = hostname2; 
    } 

    public void Testing() { 
     MessageBox.Show(_hostname2); 
    } 

} 
2

आप hostname2 मूल्य जो अपने निजी varibles उजागर के लिए मानक है retun करने के लिए एक सार्वजनिक संपत्ति का खुलासा कर सकते हैं


class Checks 
{ 
    private string _hostname; 
    public Checks(string hostname2) 
    { 
     _hostname = hostname2; 
    } 
    public string Hostname 
    { 
     get { return _hostname; } 
    } 
} 
संबंधित मुद्दे