-1

out パラメーターを含むメソッドを更新しています。パラメータをデフォルトに設定する前に、パラメータの値を確認する必要があります。

public int DoWork(out int param)
{
    param = 0;
}

しかし、私がこのようなことをしようとすると

public int DoWork(out int param)
{
    if(param == 8)
        param = 0;
}

「割り当てられていない出力パラメータ 'param' を使用しています」というエラーが表示されます。

代入する前にメソッドに渡された値を使用する方法はありますか?

更新: ref キーワードは使用できません。多くのコードが破損する可能性があり、それは設計の一部ではありません

4

4 に答える 4

3

refキーワードを使用できます。

public int DoWork(ref int param)
{
    if(param == 8)
        param = 0;
}

このようにして、新しい値をパラメーターに割り当てるだけでなく、古い値も使用できます。http://msdn.microsoft.com/en-us//library/14akc2c7.aspxをご覧ください

于 2013-11-13T10:41:55.887 に答える
2

「out」の代わりに「ref」キーワードを使用する必要があります。

「アウト」は具体的には、パラメーターが初期化され、メソッドで割り当てられ、前に初期化する必要がないことを意味します。そのため、コンパイラーは、パラメーターが宣言されただけで値がないと想定します。

代わりに、「Ref」は、探していることを正確に実行します。

public int DoWork(ref int param)
{
    if(param == 8)
        param = 0;
}

//your code:
int val = 5;
DoWork(ref val);
val.ToString(); // outputs 5
val = 8;
DoWork(ref val);
val.ToString(); // outputs 0
于 2013-11-13T10:41:27.100 に答える