c# - New static fields and hiding the public inherited members -


जिज्ञासु स्थिति:

  सार्वजनिक वर्ग MyTextBox: TextBox {// मैं उसी का उपयोग करना चाहता हूं सभी MyTextBoxes के लिए ऊँचाई सार्वजनिक नई स्थिर इंट ऊंचाई; } सार्वजनिक फॉर्म 1 () {इनिशियलाइजमेंट (); MyTextBox एमटीबी 1 = नया मायटेक्स्टबॉक्स (); मायटेक्स्टबॉक्स एमटीबी 2 = नया मायटेक्स्टबॉक्स (); Mtb1.Multiline = सच; Mtb2.Multiline = सच; Mtb1.Location = नया बिंदु (50, 100); Mtb2.Location = नया बिंदु (200, 100); Mtb1.Size = नया आकार (50, 50); Mtb2.Size = नया आकार (150, 150); Controls.Add (mtb1); Controls.Add (mtb2); Mtb1.Text = mtb1.Height; Mtb2.Text = mtb2.Height; // त्रुटि 1 सदस्य 'WindowsFormsApplication9.MyTextBox.Height' // किसी इंस्टेंस संदर्भ से एक्सेस नहीं किया जा सकता; // इसके बजाय एक प्रकार के नाम के साथ अर्हता प्राप्त करें}  

वही बात VB.NET

  पब्लिक क्लास मायटेक्स्टबॉक्स इनबॉक्स को टेक्स्टबॉक्स सार्वजनिक साझा छाया ऊँचाई के रूप में पूर्णांक समाप्त कक्षा एमटीबी 1। पाठ = एमटीबी 1। हाइट 'टेक्स्ट होगा "0"' चेतावनी 1 साझा सदस्य, निरंतर सदस्य, सदस्य का सदस्य या नेस्टेड प्रकार की पहुंच उदाहरण के माध्यम से; क्वालीफाइंग अभिव्यक्ति का मूल्यांकन नहीं किया जाएगा।  

प्रश्न:

==

  1. इस पद्धति का उपयोग छिपाने वंशानुगत वर्गों में सार्वजनिक सदस्य हैं? कभी-कभी यह उपयोगी हो सकता है ...
  2. मैं सभी सदस्यों के लिए समान ऊँचाई कैसे उपयोग कर सकता हूँ?

यह उपयोगी क्यों होगा? मुझे सच में नहीं लगता कि इस तरह से सदस्यों को छिपाने के लिए यह एक अच्छा विचार है। यह सिर्फ रखरखाव दुःस्वप्न का कारण बनता जा रहा है - जब आप "ऊँचाई" देखते हैं तो आप इसे आसानी से नहीं बता सकते हैं कि यह कौनसा सदस्य है जो वास्तव में संदर्भित है।

आईएमओ, "नए" को केवल हताशा के अंतिम कार्य के रूप में इस्तेमाल किया जाना चाहिए , आमतौर पर यदि कोई बेस क्लास ने एक सदस्य पेश किया है जो आपके मौजूदा किसी एक के साथ संघर्ष करता है। यह सामान्य ओ ओ डिजाइन सिद्धांतों से बचने जानबूझकर के एक तरीके के रूप में उपयोग नहीं किया जाना चाहिए।


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -