इंटरफेस, के रूप में MSDN द्वारा परिभाषित "तरीकों, प्रतिनिधियों या घटनाओं के केवल हस्ताक्षर होते हैं।" हालांकि, चूंकि गुण प्राप्त करने और सेट विधि के लिए सिंटेक्टिक चीनी से अधिक नहीं हैं, इसलिए उन्हें इंटरफेस में भी अनुमति दी जाती है। मेरा सवाल है - क्या ऐसी कोई परिस्थिति है जहां इंटरफ़ेस में गुणों को परिभाषित करना उचित है या क्या हमें एमएसडीएन द्वारा वर्णित परिदृश्यों के साथ रहना चाहिए?इंटरफ़ेस गुणों को परिभाषित करना चाहिए?
उत्तर
मुझे लगता है कि संपत्ति इंटरफ़ेस में पूरी तरह से स्वीकार्य हैं।
जैसा कि आपने कहा था, वे वास्तव में एक प्राप्त, सेट, या प्राप्त और विधि सेट हैं। फ्रेमवर्क में कई इंटरफेस ऐसे IAsyncResult और IWebProxy के रूप में गुण, परिभाषित करते हैं।
लेख आप लिंक करने के लिए भी कहा गया है:
एक इंटरफेस एक नाम स्थान के एक सदस्य या एक वर्ग हो सकता है और निम्नलिखित सदस्य हस्ताक्षर हो सकते हैं:
- तरीके
- गुण
- इंडेक्सर्स
- घटनाक्रम
@Simon: हाँ, मैं अब देखते हैं। –
हाँ, एक इंटरफेस जब यह वास्तव में जरूरत होती गुण परिभाषित करना चाहिए। कृपया मान लीजिए। एक आईयूसर इंटरफ़ेस है जिसने एक संपत्ति "नाम" परिभाषित की है, तो आप इस बारे में चिंता किए बिना इसका उपयोग कर सकते हैं कि वस्तु ने संपत्ति को लागू नहीं किया है या नहीं।
public void main()
{
IUser u = User.GetUser("id");
string name = u.Name;
}
- 1. इंटरफेस में इंटरफ़ेस गुणों को कार्यान्वित करना?
- 2. परिभाषित इंटरफ़ेस
- 3. हमें Serializable इंटरफ़ेस को कब कार्यान्वित करना चाहिए?
- 4. विरासत सहित किसी इंटरफ़ेस के सभी गुणों पर प्रतिबिंबित करना?
- 5. मॉडल गुणों को अपडेट करना
- 6. मुझे अपने डेटामैटप्लेट को कहां परिभाषित करना चाहिए?
- 7. मुझे पर्ल में 'स्थैतिक' सबराउटिन को कैसे परिभाषित करना चाहिए?
- 8. प्रोटोकॉल के अनुरूप गुणों को ओवरराइड करना
- 9. एमवीपी: क्या दृश्य को प्रस्तुतकर्ता के इंटरफ़ेस को लागू करना चाहिए या इसके विपरीत?
- 10. एक इटरेटर इंटरफ़ेस प्रकार को परिभाषित करने के लिए कैसे?
- 11. एनएसएमयूटेबल स्ट्रिंग को परिभाषित करना?
- 12. परिभाषित सभी गुणों को प्रोग्रामेटिक रूप से सूचीबद्ध कैसे करें?
- 13. सी # इंटरफ़ेस गुण समान नाम के साथ बेस इंटरफ़ेस गुणों को ओवरराइड कर सकते हैं?
- 14. इंटरफ़ेस में गुण नहीं होना चाहिए?
- 15. मैवेन में सशर्त गुणों को कैसे परिभाषित किया जाए?
- 16. इंटरफ़ेस में वैकल्पिक कार्यान्वयन विधियों को परिभाषित करें?
- 17. क्या मुझे इंटरफ़ेस निर्माता का उपयोग करना चाहिए या नहीं?
- 18. मुझे इंटरफ़ेस बिल्डर का उपयोग कब करना चाहिए?
- 19. फ़ंक्शन पॉइंटर्स को परिभाषित करना
- 20. सामान्य तरीकों को परिभाषित करना
- 21. मुझे किस पर्ल डेटाबेस इंटरफ़ेस का उपयोग करना चाहिए?
- 22. क्या कक्षा एक स्थिरांक-केवल इंटरफ़ेस को कार्यान्वित करनी चाहिए?
- 23. इंटरफ़ेस में स्थिरांक को परिभाषित करने का क्या अर्थ है?
- 24. enum या परिभाषित, मुझे किस का उपयोग करना चाहिए?
- 25. LINQ से XML: गुणों के मामले को अनदेखा करना
- 26. गुणों पर गणना करना
- 27. एकाधिक मोंगोस स्कीमा गुणों को मान्य करना?
- 28. पीडीएफ दस्तावेज़ गुणों को संशोधित करना
- 29. घोषणा में दो गुणों को सेट करना
- 30. बैकबोन: गुणों को मान्य करना एक
धन्यवाद, रीड। इस मामले में, क्या इन गुणों को प्राथमिक (गैर उपयोगकर्ता परिभाषित) प्रकारों का होना चाहिए? कारण मैं पूछता हूं क्योंकि यदि आप उदाहरण के लिए इसे डोमेन प्रकार के रूप में परिभाषित करते हैं, तो आप एक परिपत्र संदर्भ के साथ समाप्त हो सकते हैं। –
@ Otávio Decio: मन में एक अंतरफलक के प्रयोजन रखें। एक इंटरफेस एक अनुबंध परिभाषित करता है। यदि अनुबंध के लिए एक संपत्ति की आवश्यकता है, तो यह ठीक है। आप वृत्तीय संदर्भ के साथ खत्म नहीं करना चाहिए, के बाद से गुण हैं जो सीधे इंटरफ़ेस कार्यान्वित कर रहे हैं प्रकार, बल्कि या तो बुनियादी ढांचा प्रकार, या प्रकार है कि, खुद को, "अनुबंध" का हिस्सा नहीं होना चाहिए। IWebProxy (ऊपर लिंक) एक अच्छा उदाहरण है - इसमें एक प्रमाण पत्र संपत्ति है, जो आईसीडेंशियल्स का है। यह अनुबंध का हिस्सा है, लेकिन अभी भी "उपयोगकर्ता परिभाषित" प्रकार आवश्यक है (उस lib के लिए)। –
बस सुनिश्चित करने के लिए - इंटरफेस में परिभाषित गुण या तो गैर उपयोगकर्ता परिभाषित ठोस प्रकार या इंटरफ़ेस प्रकार (उपयोगकर्ता परिभाषित या नहीं) होना चाहिए। –