Birisi bunun bir örneğini sağlayabilir mi?C# - Boş Liste <string>'un isteğe bağlı parametre olarak kullanılması
Ben null
, string.Empty
ve nesne başlatma denedi ancak varsayılan değer
Birisi bunun bir örneğini sağlayabilir mi?C# - Boş Liste <string>'un isteğe bağlı parametre olarak kullanılması
Ben null
, string.Empty
ve nesne başlatma denedi ancak varsayılan değer
kullanıyorum, 4.0 benim için çalışıyor ve yeni bir referans atarsanız, arama bağlamında erişilebilir olmazdı. Ayrıca aşağıdaki (a List<T>
durumunda null
) derleme zamanı sabiti IS default
kullanarak bunu edebilir
+1 yaptığım iş bu kadar hızlı ve hızlı! –
İyi fikir. (Listeyi oluşturduğunuz yerden "yeni" yi kaçırıyorsunuz) – heisenberg
evet, teşekkürler. Gönderiyi düzenledim. – Vasea
Eğer new List<string>()
kullandınız mı derleme zamanında sabit olmak zorunda çünkü onlar çalışmaz?
Değil derleme zamanı sabiti bu deneyin vermedi. – Domenic
Bu imkansız. Bunun yerine yöntem aşırı yüklemesini kullanmalısınız.
public static void MyMethod(int x, List<string> y) { }
public static void MyMethod(int x)
{
MyMethod(x, Enumerable<string>.Empty());
}
Bu imkansız değildir: http://msdn.microsoft.com/en-us/library/dd264739.aspx –
Boş bir liste gibi derlenmeyen bir zaman sabitinin varsayılan değer olarak olması imkansızdır. C# 'deki parametreler için varsayılan değerleri kullanabileceğinizi biliyorum ... – Domenic
Ancak, bu tek çözüm veya 4.0'dan önceki bir C# sürümünü kullanan herkes olurdu. – shmeeps
private void test(List<string> optional = null)
{
}
yerine listenin dize üzgünüm. Boş i sadece
public void Process(string param1, List<string> param2 = null) {
param2 = param2 ?? new List<String>();
}
"param2" boş olduğunu, bu sorun olup olmadığını boş kaynaştırma operatörü ve boş listesi örneğini kullanmak görsel stüdyo 2010
:
void DoSomething(List<string> lst = default(List<string>))
{
if (lst == default(List<string>)) lst = new List<string>();
}
Benim durumumda en iyi çözüm! – MozzieMD
siz "" – raym0nd