C# 通过引用传递标签
我有一个简单的方法,我想传递一个标签 现在根据我的阅读,任何基于对象类的东西都应该自动通过引用传递,所以这是我第一次尝试我的方法:C# 通过引用传递标签,c#,C#,我有一个简单的方法,我想传递一个标签 现在根据我的阅读,任何基于对象类的东西都应该自动通过引用传递,所以这是我第一次尝试我的方法: public static void ValiateStepAsInt(String Step, int? Value, Label Error) { if (Value == null && Step != "") { Error.Tex
public static void ValiateStepAsInt(String Step, int? Value, Label Error)
{
if (Value == null && Step != "")
{
Error.Text = "Error!!!";
return;
}
Error.Text = "";
}
我没有得到任何编译器错误,但每当我调用它时,它都会设置Error.text,但一旦它离开了方法,该值就会消失(因此不是真正的按引用传递)
所以接下来我在标签错误中添加了“ref”选项;希望这可以解决问题,但仍然是一样的,方法设置它,但一旦完成,该值就会消失
尝试通过引用传递标签时缺少什么?您正在将
Text
属性重置为条件语句下方的空字符串。也许你想包装Error.Text=“”将>编码为其他
如果不是这样,那么您可能也在其他地方设置了值,从而覆盖了您在此处显示的方法中的更改。值不是因为这行代码而消失了吗:
Error.Text = "";
在方法返回之前,将标签设置为空字符串
也许你想这样做:
public static void ValiateStepAsInt(String Step, int? Value, Label Error)
{
if (Value == null && Step != "")
{
Error.Text = "Error!!!";
}
else
{
Error.Text = "";
}
}
除了丢失错误的实际原因之外,您对“通过引用传递”的理解是有缺陷的。请阅读@JonSkeet:谢谢你的阅读材料啊,伙计!我原来的方法那是一种回报!我忘了添加else逻辑!哦!是的,我搞砸了。在我原来的返回函数中,我忘记添加else语句了!