C#で参照によって小さな文字列または大きな文字列を転送する方が良いですか? 値による転送は、ランタイムに入力文字列のクローンを強制的に作成させるため、速度が低下すると想定しました。したがって、すべての文字列関数が参照によって値を転送することをお勧めしますか?
質問する
521 次
1 に答える
11
値による転送は、ランタイムに入力文字列のクローンを強制的に作成させるため、速度が低下すると想定しました。
あなたの仮定は間違っています。文字列は参照型です。文字列引数を指定してメソッドを呼び出すと、その参照が値によってコピーされます。クローン作成は含まれていません。これは固定サイズで、使用している CLR に応じて 4 バイトまたは 8 バイトです。
(値型であっても、基本的に何か他のものへの参照を含める必要があります。可変サイズの値型をスタックに直接割り当てることは意味がありません。変数に割り当てられるスペースの量? 変数の値を短い文字列または長い文字列に変更するとどうなりますか?)
于 2012-09-02T07:54:59.203 に答える