C# C getter和setter在添加验证时返回null
我正在代码上实现getter和setter,但我的getter和setter遇到问题,在setter中使用代码进行验证时,它总是返回null,下面是我的代码:C# C getter和setter在添加验证时返回null,c#,C#,我正在代码上实现getter和setter,但我的getter和setter遇到问题,在setter中使用代码进行验证时,它总是返回null,下面是我的代码: private string _employeeId; public string EmployeeId { get { return this._employeeId } set { if (!String.IsNullOrEmpty(this._employee
private string _employeeId;
public string EmployeeId
{
get
{
return this._employeeId
}
set
{
if (!String.IsNullOrEmpty(this._employeeId))
{
this._employeeId = value;
}
else
{
throw new Exception("Employee ID is required");
}
}
}
在我的应用程序中,我通过
创建类的对象
Employees obj = new Employees();
obj.EmployeeId = txt_empId.Text;
setter正在尝试设置局部变量,但将永远不会设置它,因为IsNullOrEmptythis.\u employeeId返回true,阻止设置它。也许您想在值上检查IsNullOrEmpty???在代码中,变量_employeeId为空,因为您没有为它设置初始值。在set方法中,您是validation _employeeId变量,所以这个结果总是空的,然后抛出异常!我认为您需要验证一个值,即设置的方法输入值。所以您必须验证变量值,而不是变量_employeeId
大概,您的意思是验证值。否则_employeeId将始终为null,因此它将始终无法通过验证,因此永远不会被分配。如果以相反的方式执行,则将设置为get,反之亦然。也许我需要学习更多来学习这门语言,谢谢您的帮助!是的,去吧@约翰森:虽然这段代码确实解决了问题,但最好解释一下你改变了什么以及为什么,这样大家就清楚这是如何解决问题的。您可能想阅读更多信息。
private string _employeeId;
public string EmployeeId
{
get
{
return this._employeeId
}
set
{
if (!String.IsNullOrEmpty(value))
{
this._employeeId = value;
}
else
{
throw new Exception("Employee ID is required");
}
}
}