0

全部,

是否可以通过对 .net 2.0 中的内置类型的反射来调用运算符(例如 +、++)?看来,你不能!当我尝试访问 int32 上的 op_Increment 时,未定义运算符。我读到内置类型的运算符由编译器处理,并没有在实际类型上定义......请确认。

否则,有没有别的办法?我知道 C# 的更高版本有动态关键字,我有什么选择?

4

1 回答 1

1

不,你不能。例如,在内置类型(bool、byte、short、int、long、float、double)上,操作+++映射到 IL 指令并且没有相应的op_Increment方法。

decimal确实允许你这样做,即使它看起来像一个内置类型。string是一个有趣的调用+被映射到String.Concat及其变体。

看看这篇通用运算符文章,它可能会有所帮助(由 Jon Skeet 和 Marc Gravell 撰写)

于 2012-10-09T17:19:06.297 回答