我对自动实现的属性相当新,并且我发现它们非常直接,但在Microsoft站点中它指出:
在C#3.0及更高版本中,当属性访问器中不需要其他逻辑时,自动实现的属性使属性声明更简洁.它们还使客户端代码能够创建对象.当您声明属性时,如以下示例所示,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的get和set访问器进行访问.
任何人都可以解释以下语句对自动实现的属性的实际意义:" 它们还使客户端代码能够创建对象. "?
我无法弄清楚这意味着什么.
谢谢.
我相信这是指对象初始化器语法,但为什么会出现这种情况并不清楚.自动实现的属性和对象初始值设定项是不同的东西,不应该以这种方式链接在一起.
所以,有一个看起来像这样的类:
public class Cat
{
// Auto-implemented properties.
public int Age { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以创建如下对象:
Cat cat = new Cat { Age = 10, Name = "Fluffy" };
Run Code Online (Sandbox Code Playgroud)
注意:
正如评论所述(以及对象初始化程序的MSDN页面声明),您可以将对象初始化程序语法与任何可访问的字段或属性一起使用.同样,自动实现的属性上的MSDN页面甚至提到对象创建这一事实似乎是一个糟糕的文档决策.
| 归档时间: |
|
| 查看次数: |
2418 次 |
| 最近记录: |