C#属性或简单变量,代码样式

时间:2013-04-14 23:36:06

标签: c# variables properties coding-style set

我想知道,在C#中我可以声明(通常我会从代码审查中看到这样的样式),如下所示:

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

但是很多人说,这比仅仅string myVarName;声明更好,而不是财产。

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

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

或者我可以凭借一些表现获胜?

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

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

也许我根本不对。我是对还是不对?

谢谢!

1 个答案:

答案 0 :(得分:3)

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

我使用这样的属性:

public string Name {get;set;}

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

我像这样使用它们:

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

当我需要在分配之前使用值执行某些操作。

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

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

对于性能问题,请不要担心。我不认为你会获得任何性能提升避免属性,即使你这样做,它也会是如此微小,绝不值得,因为你放弃了将来可能需要的一个非常有价值的功能,可能会非常痛苦更新。