C如何宣告欄位為可空型別,C 如何宣告一個欄位為可空型別

2022-12-21 12:30:25 字數 3644 閱讀 7743

1樓:雨月藍

c#中所有的引用型別都可以為空

而值型別在宣告的時候即時不賦值,也會有預設值

在值型別(int,datetime之類)後面加個"?" 表示這是一個nullable型別.

在c#1.x的版本中,一個值型別變數是不可以被賦予null值的,否則會產生異常。

在c#2.0中,微軟提供了nullable型別,允許用它定義包含null值(即空值)的資料型別,這對處理資料庫中包含可選欄位以及很多方面都有很大幫助。

例datetime now = null; 是會報錯的,

因為datetime型別是一個值型別, 不能為空.(就像int值不能為空一樣) 但

datetime? now = null; 卻不會報錯.

把一個值型別變數定義為對應的nullable型別後, 這個變數就有一些其他的屬性

now.hasvalue 是一個bool值,表示該變數是否非空.

now.value 就是對應的datetime型別值. 注意不要在now.hasvalue為false的時候使用這個屬性

這個"?"語法就是定義nullable的一個快捷語法.

怎樣在c#中宣告一個型別為int,值為空的變數

2樓:暢茵江驪霞

平常的int

型別是不允許為空的,但是

c#支援在型別後面加

?來定義以為可以為空的值型別,寫法如下:

int?a=

null;

//檢查

a是否為空

if(a.hasvalue)

else

c# 可空型別的問題

3樓:匿名使用者

public class c

where t : struct}}

}別忘了c#的基礎啊,nullable的t必須是值型別的即結構...........如果是引用型別,本身就有可能為null,還要加nullable幹啥?

c#中的日期型別如何賦空值?

4樓:光環國際

datetime? datetime;

datetime=null;

這裡加了一個問號,表示可空型別。

呼叫時,先判斷是否為空,在進行強制型別轉換。

5樓:匿名使用者

試試這個:

datetime? datetime;

datetime=null;

這裡加了一個問號,表示可空型別。

呼叫時,先判斷是否為空,在進行強制型別轉換。

6樓:

datatime? datetime;

不賦值,預設為空。

資料庫的這個列,設為可空(表定義的時候,列後面加null,如果加not null就是不可空)

7樓:匿名使用者

datetime dtime=null;

或datetime dtime=datetime.minvalue;

反正這二種賦值都能滿足你判斷出他有沒有變動

8樓:匿名使用者

賦值 null 總不會錯。

sql server2005資料庫有個欄位以datetime型別允許為空 在c#怎麼樣把這個時間欄位賦為null

9樓:匿名使用者

在c#中,datetime不能賦bai為null,因為沒有一du

個值zhi可以dao說是null,你可以將某個值認為是null,在寫回

資料庫答的時候,判斷是你認為是null時,可以寫入null,寫入null的方法依據的運算元據庫方法不同而不同,如用update語句,可以set它為null

10樓:匿名使用者

首先在資料庫中取出來的時候,需要判

斷這個datetime是否為空(就是判斷是否為dbnull)?如果版為空,就用一個不存在的時間

權來替換空值,我使用0001-01-01來替代的;具體**:

datetime age=reader["age"]!=dbnull.value?

(datetime)reader["age"]:convert.todatetime("0001-01-01");

最後在前臺繫結的時候再判斷如果是0001-01-01的轉換成null,其他的值不變。

**:<%# (eval("age","")).tostring()=="0001-1-1"?"null":eval("age","") %>

11樓:匿名使用者

定義可空型別就行了

datetime? date;

date = null;

12樓:匿名使用者

nullabledt = null;

這樣就可以給datateime型別的變數賦上null值了,後繼處理就簡單了

c# 可空泛型類

13樓:

可以考慮使用可選引數.

14樓:夢裡相思如故

找到答案了嗎這位朋友,我也遇到這個問題了

c#:如何把空值賦給時間型別

15樓:多喝水

datetime 它是一個結構型別,結構型別的值不能為空值。

16樓:

時間型別 datetime 是不能付空值 null 的

17樓:匿名使用者

update table set date = null資料庫裡可以為null的

c#裡這樣寫就行了

datetime? dt = new datetime();

dt=null;

注意我定義的時候那個問號

類似的值型別都可以這樣做

int? x = null;

double? b = null;

18樓:

update table set date is null

19樓:匿名使用者

datetime? 定義這個型別的時候

20樓:

以0000-00-00表示空可以嗎?

你試一試吧!

c#**中怎樣給資料庫裡的image型別賦空值?

21樓:超大蒲公英

得看你用什麼orm了,如果是直接寫sql那就是set image=null,如果是用dataset那就是dbnull

如果是ef,那就是null了

c#中設一個object型別的變數值為空,那麼分別將其顯示轉換為string型變數和int型變數

22樓:匿名使用者

object 是不能顯示轉換為int型別的,直接就報錯了。所以乾脆object obj=null;

string str=(string) obj;

int i;

if(obj==null)

else

如何在c和c 中判斷變數是否為空

風若遠去何人留 c c 中,任何一個變數在定義後即擁有自身的記憶體空間,而記憶體空間中是一定有值的,所以不存在絕對意義上的空值。一般來說,判斷空值都是判斷定以後,是否被賦值過,所以只需要判斷變數值是否還是初始值即可。區分變數型別,有一些常用的初始化情況 1 指標型別。指標型別一般被初始化為null,...

c如何宣告二維陣列,c 如何宣告一個二維陣列?

static void main string args for i 2 i 10 i for i 0 i 10 i a i,j console.writeline console.readline string fn new string 12 fn 0 new string fn 1 new s...

C如何定義類型別的陣列,C 中如何定義類的陣列,以及給他們賦值?

student 學生物件的陣列 liststu new list 學生物件的集合 c 中自定義類陣列和結構陣列的使用 發現很多時候給定的陣列要實現某個邏輯或處理很是麻煩,一維陣列,二維陣列,等等需要經過n多轉換,還不如自己寫一個自定義陣列,既方便又節省時間,以下是類陣列,其實相當於定義了一個實體類一...