c# - How can i make a generic variable without using generics? -
मेरे पास सामान्य श्रेणी है,
वर्ग ComputeScalar & lt; T & gt; : IComputeVariable जहां टी: struct {// इसलिए मुझे जेनेरिक उपयोग करना है ComputeBuffer & LT; टी & gt; बफ़र; टी डेटा; } वर्ग कंप्यूटअरेरे & lt; T & gt; : IComputeVariable जहां टी: struct {// इसलिए मुझे जेनेरिक उपयोग करना है ComputeBuffer & LT; टी & gt; बफ़र; टी [] डेटा; }
और मैं इस वर्ग को दूसरे वर्ग में एक सूची में उपयोग करता हूं,
वर्ग कुछ क्लास {सूची & lt; IComputeVariable & gt; चर; }
मैंने इंटरफ़ेस बनाया क्योंकि सी # में हम टाइप पैरामीटर के लिए सामान्य वर्ग का उपयोग नहीं कर सकते। (सही?) मैं क्या सीखना चाहता हूं मैं इंटरफ़ेस के सदस्य "डेटा" कैसे बना सकता हूं? और रनटाइम के दौरान मैं डेटा के प्रकार कैसे तय करूं? (डेटा किसी भी ValueType हो सकता है)
आप केवल एक सदस्य डेटा
बना सकते हैं इंटरफ़ेस के कारण इसे कमजोर रूप से object
के रूप में टाइप किया गया है:
सार्वजनिक इंटरफ़ेस IComputeVariable {वस्तु डेटा {get; }}
(ध्यान दें कि यह एक संपत्ति होनी चाहिए - आप इंटरफेस में फ़ील्ड निर्दिष्ट नहीं कर सकते।)
तब आप संभवत: उस लागू करना चाहते हैं ComputeScalar & lt; T & gt;
में, कमजोर टाइप किए गए संस्करण से उपयोग किए जाने से बचने के लिए जहां दृढ़ता से टाइप किया गया संस्करण उपलब्ध था।
एक विकल्प इंटरफ़ेस जेनेरिक, और कुछ क्लास
भी :
वर्ग कुछ क्लास & lt; T & gt; जहां टी: संरचना {सूची & lt; IComputeVariable & lt; T & gt; & gt; चर; }
हम वास्तव में आपकी स्थिति के बारे में पर्याप्त जानकारी नहीं जानते हैं जो सही दृष्टिकोण है, लेकिन ये आपके दो विकल्प हैं।
Comments
Post a Comment