没有参数定义但仍接受参数的构造函数

时间:2019-06-26 03:47:40

标签: c# constructor attributes

我有一个叫以下(RequireTransaction)属性的类,该属性接受一个参数,但是在类定义中,构造函数的定义不带任何参数。如果没有用一个定义的构造函数,该属性构造函数如何能够接受参数?

[RequiresTransaction(IncludeData = true)]
public ActionResult DoSomething()
{
  return something;
};


public class RequiresTransactionAttribute
{
    public bool IncludeData { get; set; }

    public RequiresTransactionAttribute()
    {
        IncludeData = false;
    }
}

2 个答案:

答案 0 :(得分:4)

引用the documentation

  

命名或可选参数与属性或属性字段相对应。

这里的命名参数对应于IncludeData属性,并且由于它是命名参数,因此不需要相应的构造函数参数。

答案 1 :(得分:2)

这称为named parameter

  

属性类的每个非静态公共读写字段和属性都为该属性类定义了一个命名参数。