2

DataGridViewはメモリを大量に消費していると思います。datagridviewを値で渡すか、参照で渡す方がよいでしょうか。それも通過する必要がありますか?

4

4 に答える 4

5

DataGridViewは値型ではなく参照型であるため、値または参照で渡すことは、メモリの観点からは重要ではありません。

于 2009-11-17T16:30:40.367 に答える
3

型は参照型であるため、オブジェクトを値DataGridViewで渡すことはできません。オブジェクトへの参照を値で渡すことができますが、それは非常に小さい(通常はポインターサイズの)値です。

于 2009-11-17T16:36:09.163 に答える
1

ジョセフの答えに追加するには、値で渡すだけで、呼び出されたメソッドスタックフレームの呼び出しスタックに新しい変数を作成し、DataGridViewオブジェクトのアドレス(ヒープ内)をその変数にコピーして、呼び出されたメソッドで使用できるようにします。 。これは、呼び出されたメソッドが新しいDataGridViewオブジェクトのアドレスを呼び出し元の変数(呼び出し元のメソッド)に割り当てないようにすることで、呼び出し元が指すdataGridView を変更することだけです。

于 2009-11-17T16:34:37.253 に答える
1
  1. コントロールを頻繁に渡す (渡す必要がない) ことはありません
  2. オブジェクト自体を渡すことはできません。
  3. オブジェクトへの参照のみを渡すことができ、値 (デフォルト) または参照 (ref パラメーター) によって渡すことは、メモリ使用量に影響しません。これは設計上の決定ですが、通常、確かにコントロールの場合、参照を値で渡します。
于 2009-11-17T18:12:50.860 に答える