Могу ли я сделать выражение LINQ необязательным параметром в C # 4.0? - PullRequest
1 голос
/ 21 апреля 2011

У меня есть следующий код.

public void GetMessages(Expression<Func<IMessageQueryable, bool>> messageSpecification, string folder = "INBOX")
{
    // Implementation stripped           
}

Как я могу предоставить значение по умолчанию для messageSpecification ?. Спецификация говорит, что значение должно быть постоянной времени компиляции. Это возможно?

РЕДАКТИРОВАТЬ: не искать, чтобы указать его как Expression<Func<IMessageQueryable, bool>> messageSpecification = null

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Вы можете перегрузить его. Каким будет ваше значение по умолчанию?

0 голосов
/ 21 апреля 2011

Зачем беспокоиться? Создайте перегрузку для того же метода без параметра messageSpecification и определите его значение по умолчанию внутри перегруженного метода и передайте его исходному методу. Параметры по умолчанию на самом деле никогда не предназначены для такого использования.

public void GetMessages(string folder = "INBOX")
{
    this.GetMessages(DEFAULT_VALUE, folder);        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...