कोई तत्काल उत्तर नहीं है; ऑपरेटरों स्थिर हैं, और बाधाओं में व्यक्त नहीं किया जा सकता है - और मौजूदा प्राइमेटिव किसी भी विशिष्ट इंटरफेस को लागू नहीं करते हैं (आईसीओपरपेबल [< टी >] के विपरीत] जिसका उपयोग अधिक से कम/कम अनुकरण करने के लिए किया जा सकता है)।
हालांकि; अगर आप सिर्फ यह काम करना चाहते हैं, तो .NET 3.5 में वहाँ कुछ विकल्प हैं ...
मैं एक साथ डाल दिया है एक पुस्तकालय here कि जेनरिक के साथ ऑपरेटरों के लिए कुशल और सरल उपयोग की अनुमति देता - जैसे:
T result = Operator.Add(first, second); // implicit <T>; here
यह सी # 4.0 में, MiscUtil
इसके अतिरिक्त के हिस्से के रूप में डाउनलोड किया जा सकता है, यह dynamic
के माध्यम से संभव हो जाता है:
static T Add<T>(T x, T y) {
dynamic dx = x, dy = y;
return dx + dy;
}
मेरे पास एक .NET 2.0 संस्करण भी था (लेकिन एक बिंदु पर), लेकिन यह कम परीक्षण किया गया है। दूसरा विकल्प
interface ICalc<T>
{
T Add(T,T)()
T Subtract(T,T)()
}
आदि के रूप में इस तरह के एक इंटरफेस बनाने के लिए है, लेकिन फिर आप सभी तरीकों, जो गंदा हो जाता है के माध्यम से एक ICalc<T>;
पारित करने के लिए की जरूरत है।
स्रोत
2008-09-29 05:46:02
आप का एक उदाहरण है जहाँ आप कोशिश कर रहे हैं इसका उपयोग करने के लिए? मैं कहीं भी नहीं सोच सकता कि उपयोगी होगा? –
एक सामान्य "योग" विधि एक साधारण उदाहरण होगा। टी Sum (IENumerable अनुक्रम); // जहां टी में '+' ऑपरेटर –
blackwing
संभावित डुप्लिकेट है [एक जेनेरिक परिभाषित करें जो + ऑपरेटर लागू करता है] (http://stackoverflow.com/questions/3598341/define-a-generic-that-implements-the-operator) – Timwi