我目前有一个类,我对它的构造函数有点困惑.
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);
如果你有能力这样做我会推荐它.