1

我多次编写了如下所示的 C# 属性:

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

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

public string Id {get; set;}

好像我写了很多代码来完成一些简单的事情。

有没有更好的办法?

4

1 回答 1

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

但是不,除了对私有变量的简单获取/设置之外,您不能让自动实现的属性做任何事情。

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

于 2013-04-18T18:16:37.560 回答