我想知道,在C#中我可以声明(通常我会从代码审查中看到这样的样式),如下所示:
string myVarName
{
get
{
return myVarName;
}
set
{
myVarName = value;
}
}
但是很多人说,这比仅仅string myVarName;
声明更好,而不是财产。
我有时会感到困惑,因为我经常在代码清单中看到这样的风格。
为什么更好?除了inlined
的提示之外,属性JIT-compiler
是否应该将函数内联编译到使用它的位置以避免函数调用开销?
或者我可以凭借一些表现获胜?
至于代码风格,我喜欢更简单的变量声明,而不是属性风格。
至于属性,我只能看到一些默认操作/触发器的最佳优势。 例如:我需要将输入值或smth中的半值存储在属性中......
也许我根本不对。我是对还是不对?
谢谢!
答案 0 :(得分:3)
实际上它与编码风格无关,你应该以最有利于你的方式使用属性。
我使用这样的属性:
public string Name {get;set;}
当我不需要任何特殊实现时
我像这样使用它们:
public string Name
{
get
{
return name;
}
set
{
name = value.toLower();
}
}
当我需要在分配之前使用值执行某些操作。
我也鼓励你使用属性不是因为“更好”,而是因为它更灵活。
想一想你刚刚使用公共变量。如果您需要添加某种验证,则需要更新实例化要修改的类的每个类。使用属性,您不需要任何外部更改。
对于性能问题,请不要担心。我不认为你会获得任何性能提升避免属性,即使你这样做,它也会是如此微小,绝不值得,因为你放弃了将来可能需要的一个非常有价值的功能,可能会非常痛苦更新。