1
private void getDetails(out IPAddress ipAddress, out int port)
{
    IPAddress Ip;
    int Port;

    try
    {
        Ip = IPAddress.Parse(textboxIp.Text);
        Port = int.Parse(textboxPort.Text);
    }
    catch (Exception ex)
    {
        IPAddress Ip null;
        int Port = -1;
        MessageBox.Show(ex.Message);
    }
}

このコンパイラ エラーが発生したのはなぜですか? どちらの場合も値に割り当てられた私のパラメータ

4

4 に答える 4

13

メソッドに渡されたパラメーターに値を割り当てていません-ipAddressおよびport. Ipnewと変数を宣言する代わりに、Port渡したパラメーターに値を割り当てるだけです。

private void getDetails(out IPAddress ipAddress, out int port)
{
    try
    {
        ipAddress = IPAddress.Parse(textboxIp.Text);
        port = int.Parse(textboxPort.Text);
    }
    catch (Exception ex)
    {
        ipAddress = null;
        port = -1;
        MessageBox.Show(ex.Message);
    }
}

編集:他の開発者の場合、「out」を使用する場合は、関数内のすべてのポイントで変数を設定できるようにする必要があります-「if」ステートメントと、ここのように、返されたのと同じように「catch」を含む、またはこの男が得たエラーが発生します。

于 2013-09-16T12:34:30.333 に答える
7

いいえ、別の変数を作成しました -int Portとは異なりますout int port。実際の出力パラメーターに値を割り当てていません。ipAddressout パラメータについても同様です。

于 2013-09-16T12:33:11.660 に答える
2

out両方の変数に値を割り当てていません。メソッド内で作成した値に値を代入しているだけです。

于 2013-09-16T12:32:51.687 に答える
2

out明らかに、パラメーターipAddressportメソッドのどの時点にも値を割り当てません。

于 2013-09-16T12:33:26.690 に答える