2010-12-22 62 views
2

聲明一個可爲空的變量.NET中的聲明問題?

例如int? a = null; - 這是真的,一個是默認

爲空值聲明另一個變量

int b; 
b=a; // cannot convert from int? to int error 

要點: - 如果不是null,則是沒有價值傳遞到B

點: - 如何在b中獲得空值,不要將int b轉換爲int? b - 除了這

我需要這個解決方案......任何人都可以幫助

請問有什麼解決

+0

b不是可以爲空,所以你不能給b分配一個空值。並請格式化您的代碼。 – Jan 2010-12-22 12:20:25

回答

5

b的數據類型爲int這是值類型的。

根據定義,無法爲int賦值null。

如果您不能將b更改爲int?,那麼您必須決定使用另一個標記來表達與null相同的含義。

int b = a ?? -1; 
1

你不能。

b是一個值類型,不能爲空。這就是爲什麼你有可空類型...

1

如果你希望B能夠採取null,則還需要爲可以爲空..

int? a = null; 
int? b = a; 

int c = b.GetValueOrDefault(); 
bool hasValue= b.HasValue; 


int e = hasValue ? b.Value : 0; 

等等