Dr.*_*son 12 .net c# coding-style
我是来自C++的.NET世界的新手,我正在努力更好地理解属性.我注意到在.NET框架中,Microsoft使用了所有地方的属性.使用属性而不是创建get/set方法是否有优势?当一个人应该使用属性时,是否有一般指南(以及命名约定)?
Dyk*_*kam 12
它是纯粹的语法糖.在后端,它被编译为普通的get和set方法.
因为惯例使用它,它看起来更好.
一些指导原则是,当它具有抛出异常或出错的高风险时,不要使用属性,而应使用明确的getter/setter.但一般来说,即使这样他们也会被使
属性是 get/set方法; 简单地说,它将它们形式化为单个概念(用于读取和写入),允许(例如)针对属性的元数据,而不是单个成员.例如:
[XmlAttribute("foo")]
public string Name {get;set;}
Run Code Online (Sandbox Code Playgroud)
这是一对get/set方法,但附加元数据适用于两者.它也,IMO,简单地使它更容易使用:
someObj.Name = "Fred"; // clearly a "set"
DateTime dob = someObj.DateOfBirth; // clearly a "get"
Run Code Online (Sandbox Code Playgroud)
我们没有重复我们正在进行获取/设置的事实.
另一个好处是它允许对属性(上面的"名称")进行简单的双向数据绑定,而不依赖于任何魔术模式(编译器保证的那些除外).
有一本完整的书专门回答这些问题:Addison-Wesley的框架设计指南.有关何时选择属性与方法的建议,请参阅第5.1.3节.
本书的大部分内容也可以在MSDN上找到,但我觉得把它放在桌面上很方便.
| 归档时间: |
|
| 查看次数: |
1781 次 |
| 最近记录: |