2011-05-05 13 views
6

Küçük bir sorum var, varyantın C# olarak tanımlanmış olup olmadığını kontrol etmem gerekiyor. null olup olmadığını kontrol etmek istemiyorum çünkü o zaman bunu yapmak istiyorum, var olmalı.C# bir var tanımlanmış mı kontrol etmek mümkün mü?

örn. Eğer String.IsNullOrEmpty(foo) kullanabilirsiniz,

isDefined("foo") :: bool 
+0

Belki de gerçek probleminizi tanımlayabilirsiniz? Neden yerel değişkenlerin varlığını kontrol etmek istiyorsunuz? IMO'da hiç bir anlam ifade etmiyor. – CodesInChaos

+0

JavaScript gibi her değişkeni bildirme zorunluluğu olmadan bir dilde mümkün olan şeyleri kastediyor musunuz? –

cevap

7

değişken bir string olduğunu bildiği gibi i anyting gibi orada var string foo tanımlanır bunu bilmemiz gerekir. Bu, bool değerini döndürür.

Eğer değişkendir ne tür emin değilseniz, şunu kullanabilirsiniz: Sen zamanında kendi adıyla yerel değişkenleri erişemiyor if (foo != null)

1

. Üyeleri çalışma zamanında ada göre erişmek için yansıma ve dynamic kullanabilirsiniz.

4

bakınız? Bu soruya ve önceki sorularınızdan yola çıkarak PHP arka planından geliyorsunuz gibi görünüyor. C# 'de tanımlanmamış bir değişken nosyonu yoktur. Kodun herhangi bir noktasında, belirli bir değişken ya bildirilir ya da verilmez ve yalnızca kodlara bakarak bildirilip bildirilmeyeceğini belirtebilirsiniz. Bildirilmezse, derleyici değişkeni kullanmanıza izin vermez (var olmaz). Bir değişken bildirilmiş, ancak başlatılmamış olabilir; Ancak, derleyici, değişkenin bir değere sahip olduğundan emin olmadıkça değişkenin değerini okumamıza izin vermez. Örneğin:

int foo; // Declared, but uninitialized 
if (bar == 42) 
    foo = 3; // Initialize foo 
// At this point, foo may or may not be initialized. 
// Since we cannot be sure that it is initialized, 
// the next line will not compile. 
x = foo; 

bir değişken (ve hiçbir değer atanmış olduğunu belirtmek için null kullanamazsınız) bir değeri atanmıştır olsun veya olmasın takip etmek istiyorsanız, bu takip etmek gerek Diğer değişkene atandığınızda false olarak başlayan ve true olarak ayarlanmış ayrı bir bool değişkeni ile.

İlgili konular