当前位置: 首页 > 编程语言 > C#

在一行中分配一个首先调用方法的新对象分享

时间:2023-04-10 17:01:08 C#

C#学习教程:AllocateanewobjectinonelinethatcallsamethodfirstsomeObject.Initialize();this.Object=someObject;我会(相当懒惰地)喜欢把它写在一行中,也许是这样的:this.Object=newSomeObject(){Initialize();};这对于C#6.0目前是可行的还是计划中的?或者这只是一个非常糟糕和懒惰的想法?这不是直接可能的,但你可以创建一个小助手:publicclassHelperwhereT:new(){publicstaticTInit(Actionbody){Tobj=newT();身体(对象);返回对象;然后:this.Object=Helper.Init(obj=>obj.Initialize());或者在更复杂的情况下:this.Object=Helper.Init(obj=>{obj.Initialize();obj.SomeOtherMethod();...});你可以这样做:this.object=(newSomeOjbect()).Initialize();但是你必须通过添加“returnthis”来编辑initialize()方法。你可以尝试一下,你会发现这目前是不可能的。在我看来,这绝对没有必要,而且会降低可读性。你可以做很多其他的事情,比如把它放在你的构造函数中。你不能说this.Object=newSomeObject().Initialize();,正如答案之一所指定的,除非Initialize方法返回SomeObject。正如我在评论中提到的,您可以在类构造函数中使用方法:publicclassSomeObject{publicSomeObject(){Initialize();}publicvoidInitialize(){//做一些初始化工作}}但是,你不应该在构造函数中调用虚方法。Moreinfo:http://msdn.microsoft.com/en-us/library/ms229060.aspx以上就是C#学习教程:Allocatinganewobjectinonelinethatcallsamethodfirst分享一下,如果对大家有帮助的话有用以及需要了解更多C#学习教程的,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: