如何在分配属性时自动处理数据?

时间:2013-04-18 18:13:56

标签: c# .net properties

我有很多次写过C#属性,如下所示:

private string _Id;
public string Id
{
    get
    {
        return _Id;
    }
    set
    {
        _Id = value.Trim();
    }
}

上面的代码片段声明了一个名为Id的字符串属性,并使其在传递给setter的值上自动调用Trim扩展方法。如果没有Trim逻辑,我可以简单地写一下:

public string Id {get; set;}

似乎我已经写了很多代码来完成一些简单的事情。

有更好的方法吗?

1 个答案:

答案 0 :(得分:5)

  

有更好的方法吗?

嗯,你可以让它看起来就像更少的代码(并且在阅读时会减少混乱):

private string _Id;
public string Id
{
    get { return _Id; }
    set { _Id = value.Trim(); }
}

甚至将整个房产本身放在一条线上:

private string _Id;
public string Id { get { return _Id; } set { _Id = value.Trim(); } }

但是不,你不能让一个自动实现的属性做更多的事情而不是简单的获取/设置为私有变量。

老实说,它实际上没有那么多代码 - 它是相当数量的语法但你只需要声明一个变量并写两个语句。我不认为这真的太过分了。