0

我有一个简单的方法,我想传入一个标签。

现在通过我的阅读,任何基于对象类的东西都应该通过引用自动传递,所以这是我第一次尝试我的方法:

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

我没有得到任何编译器错误,但是每当我调用它时,它都会设置 Error.text,但是一旦它退出该方法,该值就会消失(所以不是真正通过引用传递)。

所以接下来我在标签错误中添加了“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 回答