मैं सी # में एक ही कक्षा की एक और निर्माता से एक ओवरलोड निर्माता फोन कर सकते हैं?क्या मैं सी # में एक ही कक्षा के किसी अन्य निर्माता से ओवरलोडेड कन्स्ट्रक्टर को कॉल कर सकता हूं?
उत्तर
संपादित करें: मूल पोस्ट पर टिप्पणियों के अनुसार यह एक सी # सवाल है।
लघु जवाब: हां, this
कीवर्ड का उपयोग।
लांग जवाब: हां, this
कीवर्ड का उपयोग, और यहाँ एक उदाहरण है।
class MyClass
{
private object someData;
public MyClass(object data)
{
this.someData = data;
}
public MyClass() : this(new object())
{
// Calls the previous constructor with a new object,
// setting someData to that object
}
}
सवाल किया गया था इस बारे में सवाल करता है, तो आप इस सार्वजनिक MyClass कर सकते हैं पूछ रहा है नहीं() { // कुछ करना // फिर हमें एक अन्य निर्माता इस कॉल (नई वस्तु()); /// आप यह नहीं कर सकते! } – mfawzymkh
धन्यवाद mfaawymkh ... तो मैं ऐसा नहीं कर सकता। –
आह हे, अब मैं समझता हूं। हाँ, नहीं किया जा सकता है। –
नहीं है, आप ऐसा नहीं कर सकते, केवल जगह आप सी # में एक और निर्माता से निर्माता कॉल कर सकते हैं तुरंत बाद है ":" निर्माता के बाद। उदाहरण
class foo
{
public foo(){}
public foo(string s) { }
public foo (string s1, string s2) : this(s1) {....}
}
सी # में के लिए यह विधि शरीर के अंदर से एक और निर्माता कॉल करने के लिए संभव नहीं है। आप इस तरह एक बेस कन्स्ट्रक्टर को कॉल कर सकते हैं: foo (args): base() जैसा कि स्वयं को इंगित करता है। आप एक ही कक्षा में एक और कन्स्ट्रक्टर भी कॉल कर सकते हैं: foo (args): यह()।
आप एक आधार निर्माता कॉल करने से पहले कुछ करना चाहते हैं, तो ऐसा लगता है आधार के निर्माण के वर्ग कुछ बाहरी चीजों में से निर्भर है। यदि हां, तो आप आधार निर्माता के तर्कों, आधार वर्ग या कि
की तरह कुछ के गुणों की स्थापना करके नहीं जरिए चाहिए यदि आप यदि आप सी # में ctor श्रृंखलन कर सकते हैं मतलब है, जवाब है हां। The question पहले ही पूछे जा चुके हैं।
हालांकि यह टिप्पणी से लगता है, ऐसा लगता है क्या तुम सच में पूछने का इरादा है 'मैं भीतर पूर्व/पोस्ट प्रोसेसिंग के साथ एक और निर्माता से एक ओवरलोड निर्माता फोन कर सकते हैं?'
हालांकि सी # वाक्यविन्यास यह करने के लिए नहीं है, आप एक आम आरंभीकरण समारोह के साथ ऐसा कर सकता है (जैसे आप C++ जो ctor श्रृंखलन का समर्थन नहीं करता क्या करना होगा)
class A
{
//ctor chaining
public A():this(0)
{ Console.WriteLine("default ctor"); }
public A(int i)
{ Init(i); }
// what you want
public A(string s)
{
Console.WriteLine("string ctor overload");
Console.WriteLine("pre-processing");
Init(Int32.Parse(s));
Console.WriteLine("post-processing");
}
private void Init(int i)
{
Console.WriteLine("int ctor {0}", i);
}
}
यह शायद स्वीकार्य उत्तर होना चाहिए। – Panzercrisis
- 1. क्या मैं एक कॉपी कन्स्ट्रक्टर को स्पष्ट रूप से कॉल कर सकता हूं?
- 2. क्या मैं किसी अन्य वर्ग के अंदर एक PHP कक्षा को चालू कर सकता हूं?
- 3. क्या मैं किसी अन्य कक्षा से एनएसएनोटिफिकेशन देख सकता हूं?
- 4. क्या मैं एक निर्माता से ग्रहण में स्वचालित रूप से फ़ील्ड उत्पन्न कर सकता हूं?
- 5. वर्चुअल बेस क्लास के ओवरलोडेड कन्स्ट्रक्टर को कॉल करना
- 6. मैं कक्षा को केवल किसी अन्य वर्ग के भीतर रचनात्मक बनाने के लिए कैसे प्रतिबंधित कर सकता हूं?
- 7. सी # में बेस कन्स्ट्रक्टर को कॉल करने के लिए मैं कैसे मजबूर कर सकता हूं?
- 8. ओवरलोडेड कन्स्ट्रक्टर के बीच अस्पष्टता
- 9. क्या मैं कक्षा को अनदेखा कर सकता हूं लेकिन बाहरी रूप से सील कर सकता हूं?
- 10. विजुअल स्टूडियो में किसी अन्य समाधान से मैं एक परियोजना को कैसे डिबग कर सकता हूं?
- 11. सी ++, मैं व्युत्पन्न कक्षा में बेस क्लास के ओवरलोडेड निष्कर्षण ऑपरेटर को कैसे कॉल करूं?
- 12. जांचें कि कोई कन्स्ट्रक्टर किसी अन्य निर्माता को कॉल करता है
- 13. क्या मैं कक्षा के शरीर में एक निजी कन्स्ट्रक्टर डिफ़ॉल्ट कर सकता हूं या नहीं?
- 14. क्या मैं एक ओवरलोडेड ऑपरेटर को गैर-प्रकार का टेम्पलेट तर्क पास कर सकता हूं?
- 15. निर्माता कॉल
- 16. कन्स्ट्रक्टर में कॉल बेस कन्स्ट्रक्टर और अन्य कन्स्ट्रक्टर
- 17. सी ++ 11 एक ही कक्षा प्रकार के निर्माता से निर्माता बुला
- 18. मैं ओवरलोडेड .NET फ़ंक्शन को कैसे कॉल कर सकता हूं जो पावरहेल से सी # आउट तर्क का उपयोग करता है?
- 19. क्या कन्स्ट्रक्टर सी ++ में एक और कन्स्ट्रक्टर कॉल कर सकता है?
- 20. क्या मैं service.onStartCommand में stopSelf() को कॉल कर सकता हूं?
- 21. मैं सी ++ में किसी सरणी के किसी हिस्से को किसी अन्य सरणी में कैसे कॉपी कर सकता हूं?
- 22. जावा में, मैं एक निजी कन्स्ट्रक्टर के साथ कक्षा कैसे बना सकता हूं जिसका सुपरक्लास भी निजी कन्स्ट्रक्टर है?
- 23. किसी अन्य कक्षा के अंदर एक सीएसएस कक्षा को कॉल करना?
- 24. किसी अन्य कक्षा से फॉर्म क्लास में फ़ंक्शन को कॉल करना, सी # .NET
- 25. मैं निजी क्षेत्र से निजी कन्स्ट्रक्टर क्यों कॉल कर सकता हूं?
- 26. कैसे निर्माता कॉल करने के लिए अगर मैं निम्नलिखित है समारोह में एक ही नाम
- 27. मैं कक्षा के वैश्विक उदाहरण के निर्माता से अपवाद को कैसे पकड़ सकता हूं?
- 28. नोड जेएस - एक ही विधि में किसी अन्य विधि से एक विधि को कॉल करना
- 29. स्कैला में सहयोगी कन्स्ट्रक्टर सार्वजनिक रखने के दौरान मैं प्राथमिक कन्स्ट्रक्टर निजी बना सकता हूं?
- 30. जावा में सेटर्स बनाम ओवरलोडेड कन्स्ट्रक्टर
क्या भाषा? ... –
@ माले: आप किस भाषा के बारे में बात कर रहे हैं? यदि आप जावा/सी # के बारे में बात कर रहे हैं, तो यह सवाल क्यों होना चाहिए? एक प्रश्न पोस्ट करने से पहले दस्तावेज़ आपको मदद करनी चाहिए। क्षमा करें, अगर मैं अपनी समझ में गलत हूं। – shahkalpesh
सी # .. मैं (args) आधार() लेकिन यह इस foo की तरह करने के लिए() { // कुछ करना foo (args) संभव है इस foo की तरह दूसरे निर्माता कॉल कर सकते हैं // कुछ करना } –