アセンブリに飛び込むmscolib.dll
と、Int32 が構造体であることがわかりましたが、このように "=" 演算子を Int32 に適用できる理由がわかりInt32 num=5;
ません。Int32 構造体内で "=" 演算子をオーバーロードしません。
1 に答える
1
演算子は=
オーバーロードできません。オーバーロード可能な演算子を参照してください。演算子は、=
常に右側の値を左側の変数に代入します。
値型 (構造体) の場合、値全体が変数にコピーされることを意味します。
のようなタイプの場合Int32
、そのコピーを実行できる命令がプロセッサに組み込まれています。値全体を一度にコピーできる命令がないほど大きい構造体の場合、構造体のバイトを変数にコピーするループが発生します。
于 2015-01-24T17:49:04.050 に答える