【发布时间】:2011-04-25 23:24:36
【问题描述】:
对于这里的铁杆 C# 编码人员来说,这似乎是一个完全愚蠢的问题 - 然而,我刚刚在 AWS SDK 论坛中遇到了一个示例代码的 sn-p 并且完全被它扫视了:
RunInstancesRequest runInstance = new RunInstancesRequest()
.WithMinCount(1)
.WithMaxCount(1)
.WithImageId(GetXMLElement("ami"))
.WithInstanceType("t1.micro");
这很容易让人想起旧的 VB6 With ... End With 语法,我一直在感叹 C# 中没有这种语法——我已经在我的 VS2008 项目中编译了它,它很有效,节省了许多单独引用这些属性的单独行.
我确定我过去读过文章,解释了为什么 VB6 风格的 With-block 不在 C# 中,所以我的问题是:这种语法 always 存在于语言,还是最近的 .NET 更改启用了它?我们可以在同一个糖中覆盖所有对象实例化,然后是属性更改吗?
【问题讨论】:
-
当然,如果你愿意,你可以实现所有这些方法。但是为什么不直接使用对象初始化语法呢?
-
这里的答案很好,但我只能接受一个 - 所以目前它是专门指 Fluent Interface 的答案,因为文章中的示例非常清楚这是怎么回事。我有点尴尬,因为我自己没有建立直观的链接,发现整个线条的形式是“A.B.C.D;”,但我以前从未见过这种技术。弓上的另一根弦! :)
标签: c# syntactic-sugar