के साथ कस्टम ऑपरेटर को कैसे कॉल करें मेरी छोटी परियोजना में मैं निष्पादन योग्य कोड बनाने के लिए System.Reflection
कक्षाओं का उपयोग कर रहा हूं। मुझे कस्टम प्रकार के +
ऑपरेटर को कॉल करने की आवश्यकता है। क्या कोई जानता है कि मैं सी # प्रतिबिंब का उपयोग कर कस्टम क्लास के कस्टमाइज्ड ऑपरेटर को कैसे कॉल कर सकता हूं?प्रतिबिंब
18
A
उत्तर
22
सी # संकलक नाम op_XXXX
साथ कार्यों के लिए ऑपरेटर अतिभारित बदल देता जहां XXXX
ऑपरेशन है:
operator==
->op_Equality
operator!=
->op_Inequality
operator+
->op_Addition
operator-
->op_Subtraction
operator<
->op_LessThan
operator>
->op_GreaterThan
operator<=
->op_LessThanOrEqual
operator>=
->op_GreaterThanOrEqual
और इसके आगे।
तो DateTime
struct के operator+
विधि को पुनः प्राप्त करने के लिए, आप लिखने की ज़रूरत:
MethodInfo mi = typeof(DateTime).GetMethod("op_Addition",
BindingFlags.Static | BindingFlags.Public);
1
अपने अनुकूलित ऑपरेटर को Class
के property
के रूप में बनाने पर विचार करें। और उसके बाद property
और reflection
तक पहुंचें।
तरह
PropertyInfo pinfo = obj.GetType().GetProperty("CustomOperator", BindingFlags.Public | BindingFlags.Instance);
string customOperator = pinfo.GetValue(obj,null) as string;
6
typeof(A).GetMethod("op_Addition").Invoke(null, instance1, instance2);
संबंधित मुद्दे
- 1. प्रतिबिंब
- 2. प्रतिबिंब
- 3. प्रतिबिंब
- 4. प्रतिबिंब
- 5. प्रतिबिंब
- 6. प्रतिबिंब
- 7. प्रतिबिंब
- 8. प्रतिबिंब
- 9. प्रतिबिंब
- 10. प्रतिबिंब
- 11. प्रतिबिंब
- 12. प्रतिबिंब
- 13. प्रतिबिंब
- 14. प्रतिबिंब
- 15. प्रतिबिंब
- 16. प्रतिबिंब
- 17. प्रतिबिंब
- 18. प्रतिबिंब
- 19. प्रतिबिंब
- 20. प्रतिबिंब
- 21. प्रतिबिंब
- 22. प्रतिबिंब
- 23. प्रतिबिंब
- 24. प्रतिबिंब
- 25. प्रतिबिंब
- 26. प्रतिबिंब
- 27. प्रतिबिंब
- 28. प्रतिबिंब
- 29. प्रतिबिंब
- 30. प्रतिबिंब
बस उत्सुक :) क्या मैं एक ही हस्ताक्षर के साथ एक स्थिर 'op_Addition' विधि है या नहीं? –
@ ŞafakGür फिर आपको "टाइप करें" 'कहने वाला एक कंपाइलर त्रुटि मिलेगी, जो पहले से ही पैरामीटर प्रकारों के साथ' op_Addition 'नामक सदस्य को परिभाषित करती है। चूंकि परिभाषित ऑपरेटर विधि का नाम उपरोक्त नाम से बदल दिया गया है, इसलिए आप दोनों एक ही कक्षा में नहीं हो सकते हैं। –
और ऑपरेटर कास्टिंग के लिए नामकरण नियम क्या होगा? – Grx70