0

ラベルを渡したい簡単な方法があります。

今読んでみると、オブジェクトクラスに基づくものはすべて自動的に参照渡しされるはずなので、これが私のメソッドでの最初の試みでした:

        public static void ValiateStepAsInt(String Step, int? Value, Label Error)
        {
            if (Value == null && Step != "")
            {
                Error.Text = "Error!!!";
                return;
            }
            Error.Text = "";
        }

コンパイルエラーは発生しませんでしたが、これを呼び出すたびにError.textが設定されましたが、メソッドから出るとその値は消えてしまいました(実際には参照渡しではありません)。

次に、Label Error に "ref" オプションを追加しました。これで問題が解決することを願っていますが、それでも同じことですが、メソッドはそれを設定しますが、完了するとその値は消えます。

参照によってラベルを渡そうとすると何が欠けていますか?

4

2 に答える 2

7

Textプロパティを条件文のすぐ下の空の文字列にリセットしています。たぶんあなたはにラップError.Text = "";したいでしょうelse

そうでない場合は、おそらく別の場所でも値を設定しているため、ここで示したメソッドの変更を上書きします。

于 2012-08-01T13:29:46.803 に答える
3

このコード行が原因で値が消えていませんか?

Error.Text = "";

メソッドが戻る直前に、Labelを空の文字列に設定しています。

多分あなたはこれをすることを意味します:

public static void ValiateStepAsInt(String Step, int? Value, Label Error)
{
    if (Value == null && Step != "")
    {
        Error.Text = "Error!!!";
    }
    else
    {
        Error.Text = "";
    }
}
于 2012-08-01T13:30:19.027 に答える