C# C getter和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

我正在代码上实现getter和setter,但我的getter和setter遇到问题,在setter中使用代码进行验证时,它总是返回null,下面是我的代码:

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");
        }
    }  
}