c# – `this`和一个类构造函数

前端之家收集整理的这篇文章主要介绍了c# – `this`和一个类构造函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前有一个类,我对它的构造函数有点困惑.
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);

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

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

原文链接:https://www.f2er.com/csharp/98391.html

猜你在找的C#相关文章