Bond中继承结构体的初始化方法咨询
初始化Bond继承结构体的基类字段
嘿,这个问题我碰到过不少次,Bond里处理继承结构体的基类字段初始化其实有几种很直观的方式,我给你梳理下:
直接在对象初始化器中指定基类字段
Bond生成的派生类会直接包含基类的所有字段作为自身成员,所以你可以在创建SampleEvent对象时,直接把基类Context的字段和派生类字段一起写在初始化器里:SampleEvent evt = new SampleEvent { thing = "your_thing_value", otherthing = "your_otherthing_value", evt = str };通过基类实例赋值初始化
如果基类的字段较多,或者你有预先配置好的基类实例,可以先创建Context对象,再通过派生类中自动生成的基类同名成员来赋值:// 先初始化基类实例 Context baseCtx = { thing = "predefined_thing", otherthing = "predefined_other" }; // 用基类实例初始化派生对象的基类部分 SampleEvent evt = new SampleEvent { Context = baseCtx, evt = str };
简单来说,Bond的继承是基于合成实现的——派生结构体本质上包含了一个基类类型的成员(同时也会把基类字段直接暴露为自身成员),所以不管是直接写字段名,还是通过基类成员赋值,都能完成基类字段的初始化。
内容的提问来源于stack exchange,提问作者Eric Brown
相关产品推荐
相关产品推荐

