通过引用传递标签

时间:2012-08-01 13:28:38

标签: c#

我有一个简单的方法,我希望传递一个标签。

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

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

我没有得到任何compilor错误,但每当我调用它时,它会设置Error.text,但是一旦它退出该方法,该值就会消失(因此不能通过引用传递)。

接下来我在标签错误中添加了“ref”选项;希望这可能解决问题,但仍然是相同的,该方法设置它,但一旦完成,该值消失。

尝试通过引用传递标签时我缺少什么?

2 个答案:

答案 0 :(得分:7)

您正在将Text属性重置为条件语句下方的空字符串。也许你想把Error.Text = "";包裹成else

如果不是这样,那么也许您正在将值设置在其他地方,从而覆盖您在此处向我们展示的方法中的更改。

答案 1 :(得分:3)

由于这行代码,值不会消失:

Error.Text = "";

您正在方法返回之前将Label设置为空字符串。

也许你的意思是这样做:

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