这个关键字在某些情况下并不清楚

时间:2013-05-09 03:27:50

标签: c#

当我进行编码时,我遇到了像这样的函数=>

public RelayCommand(Action<object> execute): this(execute, null)

我真的不知道这里的“这个”关键词用法

3 个答案:

答案 0 :(得分:5)

它是构造函数链接。 this(execute, null)调用该类中定义的另一个构造函数,该构造函数接受Action<object>和其他值。例如:

class Whatever
{
    public Whatever() : this("string arg") {}  // calls Whatever(string)

    public Whatever(string something) {}
}

答案 1 :(得分:1)

this关键字的这种特殊用法允许您从另一个中调用一个构造函数,可能是为了提供默认参数。您可以通过应用默认参数值将两个构造函数“折叠”为:

public RelayCommand(Action<object> execute, string name = null) {
    ...
}

答案 2 :(得分:0)

这是指当前构造函数的重载版本。 基本上,两个构造函数链接在一起,这可以很好地避免构造函数中的重复代码