我有一个简单的方法,我希望传递一个标签。
现在通过我的阅读,任何基于对象类的内容都应该自动通过引用传递,所以这是我第一次尝试使用我的方法:
public static void ValiateStepAsInt(String Step, int? Value, Label Error)
{
if (Value == null && Step != "")
{
Error.Text = "Error!!!";
return;
}
Error.Text = "";
}
我没有得到任何compilor错误,但每当我调用它时,它会设置Error.text,但是一旦它退出该方法,该值就会消失(因此不能通过引用传递)。
接下来我在标签错误中添加了“ref”选项;希望这可能解决问题,但仍然是相同的,该方法设置它,但一旦完成,该值消失。
尝试通过引用传递标签时我缺少什么?
答案 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 = "";
}
}