2009-06-26 10 views
9

メモリ、パフォーマンスなどの場合に部分クラスを使用するオーバーヘッドはありますか?部分クラスの使用

部分クラスを作成する場合、は、クラスが部分的であるかどうかをリフレクタで識別できますか?

答えて

16

いいえ部分的でない場合と同じILにコンパイルされます。それはです。純粋にのコンパイル時のことです.CLRは部分的であったことさえ知りません。それはファイルのいずれかで実装されますしない限り、C#3に導入partial methodsで、メソッドがさえILに放出されないことを

注意。呼び出しと宣言の両方がコンパイラによって削除されます。

それはもちろん、コンパイラミリ秒の感知できない割合を遅らせるだろうている可能性があります:)彼らが一つのクラスにコンパイルされる

+0

部分的なクラスを作成すると、そのクラスがリフレクタを使用して部分的かどうかを識別できますか? – rahul

+2

Partialは空白に似ていますが、EOFだけが含まれています。コンパイラはそれを解析しますが、その後はそれまで存在していたトレースはありません。 –

+1

@Phoenix:いいえ、あなたが分析するデバッグシンボルを持っていて、そのコードの一部があるファイルから来ていて、別のものが別のファイルから来ていることがわかったのは、 –

3

いいえ、すべてのクラスファイルはコンパイル時に統合されます。

部分型の場合はmsdn articleです。

各ソースファイルには、タイプまたはメソッド定義のセクションが含まれており、アプリケーションのコンパイル時にすべてのパートが結合されます。

2

号。純粋に言語機能です。