2010-10-21 13 views
7

İyi öğleden ifadelerdeStandart parametre değerleri

C# lambda ifadeleri kullanırken varsayılan parametre değerleri ayarlamak eğer birisi bana söyleyebilir mi? Örneğin, ben hiç IntTmp 'ın varsayılan bir değer girebilir nasıl kod

public static Func<String, Int32, IEnumerable<String>> SomeFunction = (StrTmp, IntTmp) => { ... }, 

varsa, iki örneğin? Bir yöntemde varsayılan parametre değerlerini ayarlamanın olağan yolu, bu tür ifadelerle çalışmaz gibi görünmektedir (ve gerçekten bu türden bir tanesine ihtiyacım var).

Çok teşekkür ederim.

+0

.NET 4.0 http://msdn.microsoft.com/en-us/library/dd264739.aspx – hunter

cevap

1

Gerçekten fonksiyonların kompozisyon ile yapmamasını sürece:

public static Func<String, Int32, IEnumerable<String>> SomeFunction = 
              (StrTmp, IntTmp) => { ... }; 

public static Func<String, IEnumerable<String>> SomeFunctionDefaulted = 
            strTmp => SomeFunction(strTmp, 2); 

Ayrıca null almaya bir_işlev değiştirerek deneyebilirsiniz, ama o zaman açıkça bir değer için boş geçmek ve bunun için kontrol etmesi gerekir yöntem gövdesinde.

+0

'u kullanmanız gerekebilir. Böyle bir şey yaptığımı hatırlamadım ve çok mantıklı görünüyor. Diğer yandan aynı şey için pek çok yönteme sahip olmamayı tercih etmeyi tercih ederim. Yine de çok teşekkür ederim! – Miguel

İlgili konular