C# 使用未分配的局部变量';TargetControl';
在第3行显示错误 代码在下面C# 使用未分配的局部变量';TargetControl';,c#,asp.net,C#,Asp.net,在第3行显示错误 代码在下面 if (this.Page.Master != null) { Control TargetControl; if (this.Page.Master.FindControl(this.TargetControlID) != null) { return this.Page.Master.FindControl(this.TargetControlID); } return TargetControl; }
if (this.Page.Master != null)
{
Control TargetControl;
if (this.Page.Master.FindControl(this.TargetControlID) != null)
{
return this.Page.Master.FindControl(this.TargetControlID);
}
return TargetControl;
}
将代码更改为:
return Page.Master.FindControl(TargetControlID);
如果未找到,则返回null,或者返回控件。将代码更改为:
return Page.Master.FindControl(TargetControlID);
如果找不到它,它将返回null,或者它将返回控件
未分配局部变量“TargetControl”的使用
您的错误是因为您在此处声明了一个变量:
Control TargetControl;
但永远不要给它赋值。在使用变量之前,必须为变量赋值
快速解决方案是:
Control TargetControl = null;
…但是,这本身是非常无用的,你可以这样做:
return this.Page.Master.FindControl(this.TargetControlID);
未分配局部变量“TargetControl”的使用
您的错误是因为您在此处声明了一个变量:
Control TargetControl;
但永远不要给它赋值。在使用变量之前,必须为变量赋值
快速解决方案是:
Control TargetControl = null;
…但是,这本身是非常无用的,你可以这样做:
return this.Page.Master.FindControl(this.TargetControlID);
你的代码毫无意义。您正在返回
TargetControl
。。但从来没有分配给它任何东西。因此,您可以完全删除它,只返回null
。我甚至认为这不会编译,因为您返回的是一个未赋值的变量。这是一个很好的例子,说明了为什么早期返回规则仍然适用。如果您只能有一个return语句,那么问题就会变得更加明显。整个函数可以总结为一行:returnpage.Master.FindControl(TargetControlID)有人写一个答案,让我们继续生活。你的代码毫无意义。您正在返回TargetControl
。。但从来没有分配给它任何东西。因此,您可以完全删除它,只返回null
。我甚至认为这不会编译,因为您返回的是一个未赋值的变量。这是一个很好的例子,说明了为什么早期返回规则仍然适用。如果您只能有一个return语句,那么问题就会变得更加明显。整个函数可以总结为一行:returnpage.Master.FindControl(TargetControlID)有人写一个答案,让我们继续生活。