-2

我想知道,在 C# 中,我可以这样声明(我经常从代码审查中看到这种风格):

string myVarName
{
    get
    {
        return myVarName;
    }
    set
    {
        myVarName = value;
    }
}

但是很多人说,这比仅仅string myVarName;声明为不是属性要好。

我有时会感到困惑,因为我经常在代码清单中看到这种风格。

为什么更好?inlined除了提示JIT-compiler应该将函数内联编译到使用它的位置以避免函数调用开销之外,还有属性吗?

或者我可以通过一些表现获胜?

至于代码风格,我喜欢更简单的变量声明,而不是属性风格。

至于属性,我只能看到一些默认操作/触发器的最佳优势。例如:我需要将传入值的一半值或类似的东西存储在属性中......

也许我一点都不对。我是对还是错?

谢谢!

4

1 回答 1

3

实际上,这与编码风格无关,您应该以对您最有利的方式使用属性。

我使用这样的属性:

public string Name {get;set;}

当我不需要任何特殊实现时

我像这样使用它们:

public string Name
{
    get
    {
        return name;
    }
    set
    {
        name = value.toLower();
    }
}

当我需要在分配之前对值做一些事情时。

我也鼓励你使用属性不是因为它“更好”,而是因为它更灵活。

想一想您刚刚使用了公共变量。如果您需要添加某种验证,则需要更新每个实例化您要修改的类的类。使用属性,您不需要任何外部更改。

至于性能问题,不用担心。我认为避免使用 Properties 不会获得任何性能提升,即使您这样做,它也会非常小,绝不值得,因为您正在丢弃您将来可能需要的真正有价值的功能,并且可能会非常痛苦更新。

于 2013-04-14T23:39:58.583 回答