'कहाँ' बाधा क्या है
'कहाँ' C # में कंस्ट्रेंट एक सामान्य प्रकार की बाधा है जो डेवलपर्स को उस प्रकार के पैरामीटर को निर्दिष्ट करने की अनुमति देता है जो एक सामान्य प्रकार का प्रतिनिधित्व कर सकता है। बाधा का उपयोग करके निर्दिष्ट किया गया है 'कहाँ' कीवर्ड के बाद टाइप पैरामीटर और बाधा, उपयोग करने के लिए सिंटैक्स 'कहाँ' बाधा इस प्रकार है:
पब्लिक क्लास क्लासनाम < टी > जहां टी : बाधा{
// वर्ग कार्यान्वयन
}
यहां ही 'कक्षा का नाम' सामान्य प्रकार के पैरामीटर के साथ वर्ग के नाम का प्रतिनिधित्व करता है 'टी' . 'कहाँ' कीवर्ड प्रकार पैरामीटर के लिए बाधा निर्दिष्ट करता है, और 'बाधा' वह प्रकार है जिसे प्रकार पैरामीटर का प्रतिनिधित्व करना चाहिए।
आइए एक सामान्य वर्ग का उदाहरण लें जो एक प्रकार के पैरामीटर को स्वीकार करता है और मानों की एक सरणी से न्यूनतम मान लौटाता है। यहाँ कोड का उपयोग करता है 'कहाँ' बाधा निर्दिष्ट करने के लिए कि प्रकार पैरामीटर एक संख्यात्मक प्रकार होना चाहिए:
सिस्टम का उपयोग करना ;
पब्लिक क्लास मिनवैल्यू < टी > जहां टी : struct , Iतुलनीय , IConvertible
{
सार्वजनिक टी GetMinValue ( टी [ ] सरणी )
{
अगर ( सरणी == व्यर्थ || सरणी। लंबाई == 0 ) {
नया तर्क अपवाद फेंकें ( 'ऐरे शून्य या खाली नहीं हो सकता' ) ;
}
टी मिनट = सरणी [ 0 ] ;
के लिए ( int यहाँ मैं = 1 ; मैं < सरणी। लंबाई ; मैं ++ ) {
अगर ( सरणी [ मैं ] . से तुलना करें ( मिन ) < 0 ) {
मिन = सरणी [ मैं ] ;
}
}
वापस करना मिन ;
}
}
सार्वजनिक वर्ग कार्यक्रम
{
जनता स्थिर खालीपन मुख्य ( )
{
int यहाँ [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;
न्यूनतम मूल्य < int यहाँ > intMinValue = नया न्यूनतम मूल्य < int यहाँ > ( ) ;
int यहाँ intMin = intMinValue. GetMinValue ( intArray ) ;
सांत्वना देना। पंक्ति लिखो ( 'इंटेरे का न्यूनतम मूल्य: {0}' , intMin ) ;
दोहरा [ ] aray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;
न्यूनतम मूल्य < दोहरा > doubleMinValue = नया न्यूनतम मूल्य < दोहरा > ( ) ;
दोहरा डबल मिन = doubleMinValue. GetMinValue ( aray ) ;
सांत्वना देना। पंक्ति लिखो ( 'डबलअरे का न्यूनतम मूल्य: {0}' , डबल मिन ) ;
}
}
यहाँ, हमने एक सामान्य वर्ग को परिभाषित किया है 'मिनवैल्यू' जो एक प्रकार के पैरामीटर को स्वीकार करता है 'टी' और मूल्यों की एक सरणी से न्यूनतम मान लौटाता है। अगला, हमने उपयोग किया है 'कहाँ' बाधा निर्दिष्ट करने के लिए कि प्रकार पैरामीटर एक संरचना होना चाहिए, IComparable इंटरफ़ेस लागू करें, और IConvertible इंटरफ़ेस लागू करें। यह बाधा सुनिश्चित करती है कि टाइप पैरामीटर के रूप में केवल संख्यात्मक प्रकारों की अनुमति है।
निष्कर्ष
'कहाँ' सी # में बाधा एक शक्तिशाली विशेषता है जो डेवलपर्स को प्रकार की सुरक्षा लागू करने और रनटाइम के दौरान त्रुटियों को रोकने की अनुमति देती है। इस बाधा का उपयोग करके, आप उन प्रकारों के सेट को निर्दिष्ट कर सकते हैं जो एक सामान्य प्रकार के पैरामीटर का प्रतिनिधित्व कर सकते हैं। इस लेख ने इसका एक सिंहावलोकन प्रदान किया है 'कहाँ' सी # में बाधा और कोड के साथ इसका उपयोग करने का तरीका दिखाया।