构造函数参数

Dar*_*ett 0 c#

我正在通过一个例子,并发现了以下内容:

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

有人可以更详细地解释以下部分,因为我不确定它是如何使用的:

 IToolManager toolManager = null)
 : base(toolManager)
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 5

IToolManager toolManager = null)
Run Code Online (Sandbox Code Playgroud)

这就是所谓的可选参数.当您调用此方法时,您不必提供它.如果不这样做,则会给出方法签名中指定的值

 : base(toolManager)
Run Code Online (Sandbox Code Playgroud)

这是对您的类扩展的类的构造函数的调用.我建议你阅读一些关于继承和构造函数链接的内容.