c# – `this`和一个类构造函数
发布时间:2020-12-15 18:23:43 所属栏目:百科 来源:网络整理
导读:我目前有一个类,我对它的构造函数有点困惑. public class BarListTracker : GotTickIndicator { public BarListTracker(BarInterval interval) : this(new BarInterval[] { interval }) { } } 这个声明(新的BarInterval [] {interval})意味着什么? 解决方法
我目前有一个类,我对它的构造函数有点困惑.
public class BarListTracker : GotTickIndicator { public BarListTracker(BarInterval interval) : this(new BarInterval[] { interval }) { } } 这个声明(新的BarInterval [] {interval})意味着什么? 解决方法
这表明当调用此类并将值作为BarInterval数组传递时,它们正在基类或调用类中的另一个构造函数.在这种情况下,它不是基类,否则它会说:base(…),它是在同一个类中定义的另一个构造函数.
这很常见,因为您希望以多种不同的方式访问类,在这种情况下,似乎他们希望有时只发送一个对象而无需在代码中设置数组. 但是,他们可以做的一件事就是改变了另一个构造函数,一个被调用的构造函数:这就是: public BarListTracker(params BarInterval[] interval) 他们甚至不需要第二个构造函数.这是一个更清洁的解决方案,并在各处产生相同的结果.另一个构造函数仍然获取一个数组,如果需要,您甚至可以将数组传递给它: var arrOfBarInterval = new BarInterval[] { val1,val2 }; var tracker = new BarListTracker(arrOfBarInterval); 但是,你也可以通过一个: var tracker = new BarListTracker(barInterval); 如果你有能力这样做我会推荐它. 需要注意的一点是:这个(…)构造函数在你所在的构造函数之前被调用并执行.在构建逻辑时要记住这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |