全部,
是否可以通过对 .net 2.0 中的内置类型的反射来调用运算符(例如 +、++)?看来,你不能!当我尝试访问 int32 上的 op_Increment 时,未定义运算符。我读到内置类型的运算符由编译器处理,并没有在实际类型上定义......请确认。
否则,有没有别的办法?我知道 C# 的更高版本有动态关键字,我有什么选择?
全部,
是否可以通过对 .net 2.0 中的内置类型的反射来调用运算符(例如 +、++)?看来,你不能!当我尝试访问 int32 上的 op_Increment 时,未定义运算符。我读到内置类型的运算符由编译器处理,并没有在实际类型上定义......请确认。
否则,有没有别的办法?我知道 C# 的更高版本有动态关键字,我有什么选择?
不,你不能。例如,在内置类型(bool、byte、short、int、long、float、double)上,操作+
和++
映射到 IL 指令并且没有相应的op_Increment
方法。
decimal
确实允许你这样做,即使它看起来像一个内置类型。string
是一个有趣的调用+
被映射到String.Concat
及其变体。
看看这篇通用运算符文章,它可能会有所帮助(由 Jon Skeet 和 Marc Gravell 撰写)