2

在 .NET 中,私有方法和属性是由运行时执行还是仅由编译器执行?

如果你试图调用另一个对象的私有方法,编译器会抛出一个访问异常。如果您手动操作 IL 或尝试通过反射调用会怎样——您能做到吗?此外,它是否因运行时版本(1.1 与 2.0 与 3.5 与 4.0)而异?

4

1 回答 1

4

这是一个编译时间限制。您可以在所有版本的 .NET 中通过反射调用私有方法。从 .NET 4.0 开始,您可以使用dynamics它来完成。此外,使用反射,您可以看到和使用自动属性背后的方法。不言而喻,这是不推荐的。

于 2010-08-22T04:19:55.080 回答