मेरे पास Identifiable<TId>
नामक इंटरफेस है जिसमें दिए गए प्रकार का एक एकल प्रॉपर्टी आईडी है। मैं एक जेनेरिक क्लास बनाना चाहता हूं जो इनमें से एक को टाइप पैरामीटर के रूप में लेता है। यह सामान्य होना चाहिए क्योंकि मैं ठोस प्रकार वापस करना चाहता हूं, इसके भीतर से अन्य सामान्य तरीकों को कॉल करना चाहता हूं और typeof(T)
जैसी चीजों का उपयोग करना चाहता हूं।क्या यह इंटरफ़ेस सामान्य रूप से कार्यान्वित करना संभव है ताकि इसे केवल एक प्रकार का पैरामीटर पारित किया जा सके?
यह ठीक काम करता है:
public class ClassName<T, TId> where T : Identifiable<TId>
समस्या है कि कोड को बुला दो प्रकार में पारित करने के लिए है। जैसे। new ClassName<Person, int>()
मुझे आश्चर्य है कि .NET 3.5 में यह लिखने का कोई तरीका है ताकि टीआईडी को टी द्वारा अनुमानित किया जा सके? कॉलर को केवल new ClassName<Person>()
करने की अनुमति है?
शायद आप तो यह कर सकता है एक से थोड़ा अधिक वर्बोज़ उदाहरण दिखा सकता है:
लगातार कम मामले हैं जब आप टीआईडी के रूप में पूर्णांक नहीं करना चाहती के लिए, तो arity 2 वर्ग अभी भी उपलब्ध है स्पष्ट हो कि आप क्या करने की कोशिश कर रहे हैं और क्यों। – deepee1