4

パラメータを持つメソッドがある場合params、yield が呼び出されるたびに参照渡しして更新できますか。

このようなもの:

public static void GetRowsIter(ref params valuesToUpdate)
{

    foreach(row in rows)
    {
       foreach(param in valuesToUpdate
       {
          GetValueForParam(param)
       }
       yield;
    }
}

それは合法ですか?(私はコンパイラから離れているか、試してみます。)

4

1 に答える 1

6

いいえparams、渡されるパラメーターを含む配列を作成するだけです。この配列は、他のすべての配列と同様に、単なる変数のコレクションであり、ref変数または配列の型を宣言することはできません。このため、実際の明示的なパラメーターのみをreforとして渡すことができますout

そうは言っても、型が参照型の場合、通常どおり参照型のセマンティクスが示されます。つまり、オブジェクトに加えられた変更は、その参照にアクセスできるすべてのコードに反映されます。実際の変数への割り当てのみが反映されません。

ただし、コードが何を意図しているのか正確にはわかりません。ステートメントの後には、ステートメントと値yieldが続くか、反復子を終了するステートメントが続く必要があります。returnbreak

于 2010-07-05T01:58:59.413 に答える