当前位置: 首页 > 编程语言 > C#

如何使用Reflection调用自定义算子分享

时间:2023-04-11 00:29:56 C#

如何使用Reflection调用自定义算子在我的小项目中,我使用System.Reflection类来生成可执行代码。我需要调用自定义类型的+运算符。有谁知道如何使用C#反射调用自定义类的自定义运算符?C#编译器将重载运算符转换为名为op_XXXX的函数,其中XXXX是操作。例如,operator+编译为op_Addition。以下是可重载运算符及其各自方法名称的完整列表:┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐│运算符│方法名│描述│├───────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────┤│运算符+│op_UnaryPlus│一元││运算符-│op_UnaryNegation│一元││运算符++│op_Increment│││运算符-│op_Decrement││运算符!运算符&│op_BitwiseAnd│││运算符|运算符>│op_RightShift││运算符%│op_Modulus│││隐式运算符│op_Implicit│隐式类型转换││显式运算符│op_Explicit│显式类型转换ersion││operatortrue│op_True│││operatorfalse│op_False│└──────────────────────────────┴────────────────────────────────────────────────────┘,因此,检索datetime结构的operator+方法,需要这样写:MethodInfomi=typeof(DateTime).GetMethod("op_Addition",BindingFlags.Static|BindingFlags.Public);typeof(A).GetMethod("op_Addition").Invoke(null,instance1,instance2);考虑让您的自定义运算符成为一个类属性,然后通过反射访问该属性及其值。喜欢的就是上面的C#学习教程:HowtouseReflectiontocallcustomoperators共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——PropertyInfopinfo=obj.GetType()。GetProperty("CustomOperator",BindingFlags.Public|BindingFlags.Instance);字符串customOperator=pinfo.GetValue(obj,null)作为字符串;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: