.net

2010-09-29 8 views
13

में टैग प्रॉपर्टी का उपयोग क्या है मैंने टैग गुणों को नियंत्रण के साथ देखा है। क्या यह मेरी कस्टम ऑब्जेक्ट्स को संदर्भित करने के लिए इसका उपयोग करना ठीक है, या मुझे इससे दूर रहना चाहिए क्योंकि इसे मुक्केबाजी और अनबॉक्सिंग की आवश्यकता होगी जिसे असुरक्षित बताया गया है और इसकी अनुशंसा नहीं की जाती है।.net

TreeNode tn = new TreeNode(); 
CustClass o = new CustClass() 
o.number = 123; 
tn.Tag = o; 

class CustClass 
{ 
    public int number {get; set;} 
} 
+1

एक से शुरुआत कर सकते: [टैग पर MSDN संदर्भ] (http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.tag.aspx) – NullUserException

+0

आप क्यों टैग करें कि फोरा प्रोग्रामिंग लैंगेज? पूरी तरह से असंबंधित। – TomTom

+4

@TomTom - क्योंकि उन्होंने जो कोड प्रदान किया है वह सी # में लिखा गया है? इसके अलावा, 'नेट-विनफॉर्म' क्या है? वापस लौट रहा है ... –

उत्तर

30

Tag संपत्ति का उद्देश्य आपको किसी भी उद्देश्य आप चाहते हैं के लिए उपयोग करने के लिए है। आप वहां पर कुछ भी सुरक्षित रूप से स्टोर कर सकते हैं।

यह एक ऐसी कक्षा घोषित करने के लिए प्रथागत है जिसे विशेष रूप से Tag संपत्ति में संग्रहीत करने के लिए लक्षित किया गया है (जैसे आपने अपने CustClass के साथ किया था)। लेकिन अगर आपको इसमें केवल एक मूल्य की आवश्यकता है, तो इसमें int को सीधे स्टोर करने में कुछ भी गलत नहीं है।

आपने कहां पढ़ा कि मुक्केबाजी/अनबॉक्सिंग "असुरक्षित" है? यह बिल्कुल सच नहीं है। (कुछ लोग दावा करते हैं कि यह अक्षम है, लेकिन यह भी सच नहीं है।) इसके अलावा, आपके कोड में मुक्केबाजी का एक उदाहरण भी शामिल नहीं है। CustClass एक संदर्भ प्रकार है। object को असाइन किए जाने पर केवल मान प्रकारों को बॉक्स किया जाता है।

+4

बड़ी मात्रा में उपयोग किए जाने पर अनबॉक्सिंग अक्षम है, लेकिन नियंत्रण में एक int के लिए यह ध्यान देने योग्य नहीं है। –

2

मुझे नहीं लगता कि यह आपके इच्छित तरीके से इसका उपयोग करने के लिए एक मुक्केबाजी या अनबॉक्सिंग समस्या होगी। जहां तक ​​मुझे पता है, कि टैग प्रॉपर्टी केवल प्रोग्रामर के उद्देश्य के लिए है, इसलिए आप इसे इस्तेमाल करने के लिए जिस तरह से उपयोग कर सकते हैं उसका उपयोग कर सकते हैं।

कृपया इस संपत्ति का उपयोग करने के तरीके पर आगे के संदर्भ के लिए एमएसडीएन पर Control.Tag संपत्ति देखें।

उदाहरण के लिए, मैं विंडोज फॉर्म अनुप्रयोगों में उपयोगकर्ता को निर्देश इनपुट करने के लिए इसका उपयोग करता था। जब नियंत्रण गॉटफोकस ईवेंट ट्रिगर हुआ, तो निर्देश लेबल। टेक्स्ट गुण को मेरे नियंत्रण टैग गुण का मान सौंपा गया जिसमें निर्देश स्ट्रिंग शामिल थी।

0

लिंक से भी दूसरों को यहाँ से उल्लेख किया:

पर https://msdn.microsoft.com/en-us/library/system.windows.forms.control.tag.aspx एक पढ़ता है:

किसी भी प्रकार की वस्तु वर्ग से ली गई इस संपत्ति को सौंपा जा सकता। यदि टैग प्रॉपर्टी विंडोज फॉर्म डिज़ाइनर के माध्यम से सेट की गई है, तो केवल टेक्स्ट असाइन किया जा सकता है।

टैग संपत्ति के लिए एक आम उपयोग डेटा को संग्रहीत करना है जो नियंत्रण से जुड़ा हुआ है। उदाहरण के लिए, यदि आपके पास कोई नियंत्रण है कि किसी ग्राहक के बारे में जानकारी प्रदर्शित करता है, तो आप डेटासेट स्टोर कर सकते हैं कि उस नियंत्रण की टैग प्रॉपर्टी में ग्राहक का ऑर्डर इतिहास शामिल है ताकि डेटा को जल्दी से एक्सेस किया जा सके।

और https://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.tag.aspx एक में पढ़ता है:

... उदाहरण के बच्चे पेड़ नोड्स आवंटित करने के लिए एक रूट पेड़ नोड पैदा करता है। एआरएललिस्ट में प्रत्येक ग्राहक ऑब्जेक्ट के लिए प्रत्येक ग्राहक ऑब्जेक्ट के लिए बाल पेड़ नोड रूट ऑर्डर नोड के साथ-साथ प्रत्येक ऑब्जेक्ट ऑब्जेक्ट के लिए ग्राहक ऑब्जेक्ट को सौंपा गया है। ग्राहक ऑब्जेक्ट को टैग प्रॉपर्टी को सौंपा गया है, और ऑब्जेक्ट टेक्स्ट के साथ प्रदर्शित ग्राहक ऑब्जेक्ट्स का प्रतिनिधित्व करने वाले पेड़ नोड्स हैं।इस उदाहरण के लिए आपके पास ग्राहक और ऑर्डर ऑब्जेक्ट परिभाषित किया गया है, एक फॉर्म पर ट्री व्यू कंट्रोल, और एक एरेलेलिस्ट नामक ग्राहक ऐरे जिसमें ग्राहक ऑब्जेक्ट्स हैं।

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

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