конструктор определен без параметра, но все еще принимает параметр - PullRequest
1 голос
/ 26 июня 2019

У меня есть класс, вызывающий указанный ниже атрибут (RequireTransaction), который принимает параметр, но в определении класса конструктор определяется без каких-либо параметров. Как этот конструктор атрибута может принимать параметр, если для него не определен конструктор?

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


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

    public RequiresTransactionAttribute()
    {
        IncludeData = false;
    }
}

Ответы [ 2 ]

4 голосов
/ 26 июня 2019

Цитировать документацию :

Именованные или необязательные параметры соответствуют либо свойствам, либо полям атрибута.

Именованный параметр здесь соответствует свойству IncludeData, и, поскольку это именованный параметр, ему не требуется соответствующий аргумент конструктора.

2 голосов
/ 26 июня 2019

Это называется именованный параметр

Каждое нестатическое открытое поле для чтения и записи и свойство для класса атрибута определяет именованный параметр для класса атрибута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...