从对象中获取属性

时间:2019-05-10 14:48:29

标签: c# properties

我有一个对象,可以对某些属性进行加密(如果在数据库中有关于它的信息)或为空(如果在数据库中没有关于它的信息)

例如,对于电子邮件,我是这样做的;

public string Email
{
    get
    {
        if (String.IsNullOrEmpty(this.Email))
            return "";
        else
            return Crypto.Decrypt(this.Email, GlobalVars.VALID_KEY);
    }
    set
    {
        this.Email = value;
    }
}

我要完成的工作是,设置该值时,它将是一个空字符串或加密的字符串,而当我需要该属性时,它将把空字符串或解密字符串传递给我

在调试模式下,我确实设置了一个断点以检查对象上的某些内容,并且当VS评估对象时,出现此错误:

  

在评估函数.... Email.get

时,目标进程以代码-2147023895退出。

对此有何建议?!

预先感谢

1 个答案:

答案 0 :(得分:2)

您在Email中调用get,这将创建一个无限循环。

尝试一下:

private string _email;
public string Email
{
    get
    {
        if (String.IsNullOrEmpty(_email))
            return "";
        else
            return Crypto.Decrypt(_email, GlobalVars.VALID_KEY);
    }
    set
    {
        _email = value;
    }
}