2014-06-05 242 views
0

我通過一個例子來工作,碰上了以下內容:構造函數的參數

public CustomerDetailsViewModel(
    IUIDataProvider dataProvider, 
    string customerID, 
    IToolManager toolManager = null) 
    : base(toolManager) 
{ 
    _dataProvider = dataProvider; 
    Customer = _dataProvider.GetCustomer(customerID); 
    Customer.PropertyChanged += Customer_PropertyChanged; 
    DisplayName = Customer.CompanyName; 

有人能解釋以下部分更詳細一點如何使用它,因爲我不知道:

IToolManager toolManager = null) 
: base(toolManager) 
+0

這是一個默認/可選參數。 –

+0

接下來是對基類構造函數的鏈接調用(這就是':base(toolManager)'的含義)。 –

+0

[命名參數和可選參數](http://msdn.microsoft.com/zh-CN/library/dd264739.aspx)。 –

回答

5
IToolManager toolManager = null) 

這就是所謂的optional parameter。當你調用這個方法時,你不必提供它。如果不這樣做,它被賦予的方法簽名

: base(toolManager) 

該指定的值是由你的類擴展的類的構造函數的調用。我建議你閱讀一下繼承和構造函數鏈。

+0

這就是我最初想到的,但是基類不會將類型爲toolManager的參數作爲參數 –

+0

@ user3532702您可以顯示基類嗎? 'base'調用是我可以向你保證的基礎構造函數。 –

+0

我會再次檢查一切,我明白你所說的是正確的我目前看不到它 –