2010-01-15 19 views
24
private enum E_Week 
{ 
    Mon = 0, 
    Tue, 
    . . . 
} 

Aşağıdaki kod ne anlama geliyor?Soru işareti içeren bir meraklı C# sözdizimi

E_Week? week= null; 

Aşağıdaki kodla aynı mı? '?' Işlevi nedir? burayı imzalayın?

E_Week week= null; 
+3

[What does "DateTime?" C# demek?) (http://stackoverflow.com/questions/109859/what-does-datetime-mean-in-c) –

cevap

29

Kodunuz, nullable type adını kullanıyor. Bir int veya bir DateTime gibi bir enum, her zaman bir değere sahip olması gereken bir "değer türü" olarak bilinir. NULL türleri, değer türlerini boş değerlere izin veriyormuş gibi işlemenizi sağlar. Örneğin

, bu kodu geçersiz ve çeteleler null olamaz çünkü derlemek olmaz:

E_Week week = null; 

Ama bu kod geçerlidir:

E_Week? week = null; 

Ve bu tam olarak aynı:

Nullable<E_Week> week = null; 
16

E_Week?Nullable türleri hakkında daha fazla bilgi için here bakın Nullable<E_Week>

eşdeğerdir.

5

En önemli fark, ikinci ifadenin çalışmadığıdır;)? işareti temelde size bir değer türü (bu durumda enum) null için ayarlama imkanı verir, bu normalde mümkün değildir.

İlgili konular