2

.NETでは、プライベートメソッドとプロパティはランタイムによって強制されますか、それともコンパイラによって強制されますか?

別のオブジェクトのプライベートメソッドを呼び出そうとすると、コンパイラはアクセス例外をスローします。ILを手動で操作したり、リフレクションを介して呼び出したりするとどうなりますか?また、ランタイムバージョンによって異なりますか(1.1対2.0対3.5対4.0)?

4

1 に答える 1

4

これはコンパイル時の制限です。.NET のすべてのバージョンで、Reflection を介してプライベート メソッドを呼び出すことができます。.NET 4.0 以降では、 を使用dynamicsしてそれを実行できます。さらに、リフレクションを使用すると、自動プロパティの背後にあるメソッドを表示して使用できます。これが推奨されないことは言うまでもありません。

于 2010-08-22T04:19:55.080 に答える