【发布时间】:2011-06-04 01:00:16
【问题描述】:
为什么不能用 c# 对象初始化语法调用方法?
在我看来,属性设置器是按照它们在语法中设置的顺序被调用的,那么为什么不允许调用方法呢?如果有充分的理由,我很想念它。
编辑
我意识到方法和属性之间的语义差异以及技术上的相似之处。这个问题的目的是为了探究一个很好的技术原因,即他们没有包含该功能。
这个。 __curious_geek,我听到你在说什么,但我敢肯定他们没有包含一些功能,因为它在技术上不可行。
这就是我所追求的。压倒性的不受欢迎的语气响亮而清晰。 Stackoverflow 不再是“问答网站”,而是“捍卫您的问题网站”。
编辑 2
示例用法:
var mySuperLongVariableNameThatIDontWantToTypeOverAndOverAgainAndIsntThatTheWholePointAnyway = new Thingy
{
Name = "Marty McFly",
AddChildren("Biff","Big Bird","Alf"),
// 1000 other properties and method calls.....
}
【问题讨论】:
-
如果我不得不猜测原因,我会说是因为所有功能都从 -100 点开始,而且它没有成功。
-
如果您有需要在对象初始化期间调用的方法,那么您应该从构造函数中调用它们,而不是将其留给使用您的类的开发人员。
-
这是一个主观问题,对于不存在的事物没有明确的答案。
-
re Edit2:如果
AddChildren()需要或更改名称属性怎么办?所有类型的错误场景都成为可能,但收益微乎其微。 -
这是一个有趣的想法。当然,为了节省打字,你可以先
var x = mySuperLong...然后x.AddChildren(...