手机版

基于 网中建构子中传递子对象的对象详解

时间:2021-11-20 来源:互联网 编辑:宝哥软件园 浏览:

在设计对象继承的时候,父对象建构子会需要一些参数,这些参数可以由子对象建构子透过基础关键词来提供。复制代码代码如下:namespace Test001{公共类ParentClass { //构造函数公共父类(IEnumerableString DataCollection)}这。数据收集=数据收集;}//Properties public IEnumerablestring DataCollection { get;私有集;} }公共类ChildClass : ParentClass { //构造函数公共子类(): base(新的Liststring()){ } }但是如果子对象,要使用这个传递给父对象的参数,就需要一点小技巧才能取得了。先来看一开始解决的想法是,先建立子对象的属性对象,然后再传递给父对象。这个方法很快就失败,光是编译就不过了….对象的建立是先跑建构子、然后生出对象。在建构子的阶段,就要使用对象的属性,一定是失败的。复制代码代码如下:namespace Test002{公共类ParentClass { //构造函数公共父类(IEnumerableString DataCollection){ this .数据收集=数据收集;}//Properties public IEnumerablestring DataCollection { get;私有集;} }公共类子类:父类{//Fields private readonly Liststring _ dataCollection=new Liststring();//构造函数私有子类(): base(_ dataCollection){ } } }(9500 . 163.com)

想了一下,换个角度去解决这个问题。干脆另外再开一个子对象的建构子,先建立要传给父对象的对象,然后不直接传给父对象的建构子,而是传给子对象自己的建构子,然后这个建构子在传递给父对象。写到我眼睛都花了,好像绕口令….直接看程序代码吧,其实还蛮简单就可以完成这个小小的设计:复制代码代码如下:namespace Test003{公共类ParentClass { //构造函数公共父类(IEnumerableString DataCollection)}这。数据收集=数据收集;}//Properties public IEnumerablestring DataCollection { get;私有集;} }公共类子类:父类{//Fields私有只读列表string _ dataCollection=null//构造函数公有子类():这个(新的Liststring()){ }私有子类(Liststring dataCollection):基(dataCollection){ _ dataCollection=dataCollection;} }}

版权声明:基于 网中建构子中传递子对象的对象详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。