加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);

如果你有能力这样做我会推荐它.

需要注意的一点是:这个(…)构造函数在你所在的构造函数之前被调用并执行.在构建逻辑时要记住这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读