-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or requestimplementedサンプル実装済みサンプル実装済みrelease-noteリリースノートに反映済みリリースノートに反映済み
Description
readonlyな引数
概要
関数の引数にreadonly修飾子をつけれるようにする。
void Func(readonly ref var v)
{
//...
}
Func(ref v);動機
大きな引数を扱うとき、参照渡しを使うことで効率が向上するが、その副作用として関数内部で値が書き換えられてしまうという問題があった。readonlyな引数の導入によって値のコピーは防ぎつつ、呼び出し先の関数で内容を変更できないようにしたい。
詳細設計
引数が参照渡しされているときには、関数内部でreadonly文を使って囲んだのと同じ動作にする。
また、参照渡しでないときには、コピーした値をreadonlyとしてマークする。
欠点
前例
未確定の設計
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestimplementedサンプル実装済みサンプル実装済みrelease-noteリリースノートに反映済みリリースノートに反映済み