在其他类构造函数C#上使用基类

时间:2010-08-15 16:41:57

标签: c# design-patterns observer-pattern

我正在尝试使用C#理解观察者模式,首先我有一个抽象类作为Subject调用Stock,然后我正在创建一个concreteSubject类,所以我将它称为IBM,因为具体的主题类是要从Stock继承,所以我做这样的事情:

class IBM : Stock
{
    // Constructor
    public IBM(string symbol, double price)
      : base(symbol, price)
    {
    }
}

我不明白的是:“基础(符号,价格)”我为什么要使用它?那意味着什么?看起来它继承了符号和价格变量,但是为什么它们被声明为公共IBM函数的参数

我从我找到的示例中获取此代码:

http://www.dofactory.com/Patterns/PatternObserver.aspx#_self1

3 个答案:

答案 0 :(得分:2)

它调用基类(Stock)构造函数。如果您查看Stock类代码,它看起来像这样

public class Stock {
    private string _symbol;
    private double _price;

    public Stock(string symbol, double price)  // this constructor is called
    {
         this._symbol = symbol;
         this._price = price;
    }
} 

请注意,它只是Stock类中的构造函数,因此必须通过base(symbol, price)在所有派生类中显式调用它。

答案 1 :(得分:0)

此构造意味着IBM构造函数使用相同的参数调用Stock构造函数。

IBM构造函数中通常会有一些额外的代码。

MSDN Using Constructors (C# Programming Guide)

上有一些示例

答案 2 :(得分:0)

只需检查以下资源,以便更好地了解该构造:Constructors in C#