1
我有一些功能,我可以實現使用方法重載/鏈,但我想知道如果我可以實現與可選參數相同的功能。下面是我想要實現的一個例子,下面是一個包含方法鏈接的版本(希望這會使我的意圖變得清晰)。這可以使用可選參數完成嗎?可選參數的默認值必須是靜態的嗎?
// what I would like to do
private string CreateMessageFromTemplate(string templateId, Contact contact, string email = contact.emails.FirstOrDefault()) { ... }
//what I know I can do
private string CreateMessageFromTemplate(string templateId, Contact contact)
{
CreateMessageFromTemplate(templateId, contact, contact.emails.FirstOrDefault());
}
private string CreateMessageFromTemplate(string templateId, Contact contact, string email) { ... }
正如你所看到的,我得到從接觸參數的默認值(如果你不給我一個具體的電子郵件,我將只用在列表中的第一個)。可選參數的默認值是否必須是靜態的,或者它們可以是像我的例子中那樣的表達式的結果?如果可以,那麼正確的語法是什麼?
我應該知道......只要我看了你的答案,我記得在C#中看到這個深入。冷卻時間結束時接受。 – evanmcdonnal