c#中,
null
關鍵字是表示不引用任何物件的空引用的文字值。
null
是引用型別變數的預設值。那麼也只有引用型的變數可以為
null
,如果int i=null,
的話,是不可以的,因為
int是值型別的。 在
c#裡面定義字串的時候還可以用
.""和
string.empty.
這兩個都是表示空字串,其中有乙個重點是
string str1=""
和string str2=null
的區別,這樣定義後,
str1
是乙個空字串,空字串是乙個特殊的字串,只不過這個字串的值為空,在記憶體中是有準確的指向的,
string str2=null,
這樣定義後,只是定義了乙個
string
類的引用,
str2
並沒有指向任何地方,在使用前如果不例項化的話,都將報錯。在平時使用的時候,我們連線到資料庫後會經常碰到
dbnull
的錯誤是。
dbnull.value
本身並不是
null
值,而是表示資料庫裡的空值。
dbnull
在.net
是單獨的乙個型別
,該類只能存在唯一的例項
,dbnull.value,dbnull
唯一作用是可以表示資料庫中的字串,數
字,或日期,為什麼可以表示原因是
dotnet
儲存這些資料的類(
datarow
等)都是以
object
的形式來儲存資料的。對於
datarow ,
它的row[column]
返回的值永遠不為
null
,要麼就是具體的為
column
的型別的值
。要麼就是
dbnull 。所以
row[column].tostring()
這個寫法永遠不會在
tostring
那裡發生
nullreferenceexception
。dbnull
實現了iconvertible
。但是,除了
tostring
是正常的外,其他的
to***
都會丟擲不能轉換的錯誤。在資料庫應用程式中,空物件是字段的有效值。該類區分空值(空物件)和未初始化值(
dbnull.value
例項)。例如,表可以包含具有未初始化欄位的記錄。預設情況下,這些未初始化字段具有
dbnull
值。dbnull
是乙個單獨的類,也就是說該類只能存在乙個例項。這個唯一的例項是
dbnull.value
。如果我們從資料庫裡面讀取值的時候就必須考慮到是否有值了。如果不能確定我們就需要做乙個判斷。
convert.isdbnull()
返回有關指定物件是否為
dbnull
型別的指示
,即是用來判斷物件是否為
dbnull
的。其返回值是
true
或flase
。但是為什麼
dbnull
可以表示資料庫中的字串,數字,或日期呢?原因是
dotnet
儲存這些資料的類(
datarow
等)都是以
object
的形式來儲存資料的。
DBNull與Null的區別
null是.net中無效的物件引用。dbnull是乙個類。dbnull.value是它唯一的例項。它指資料庫中資料為空 時,在.net中的值。null表示乙個物件的指向無效,即該物件為空物件。dbnull.value表示乙個物件在資料庫中的值為空,或者說未初始化,dbnull.value物件是指向有...
C 中DBNull和NULL區別
1 dbnull是乙個類。dbnull.value是它唯一的例項。它指資料庫中資料為空 時,在.net中的值。null表示乙個物件的指向無效,即該物件為空物件。對資料庫中的資料進行判斷時,用if sdrct 0 is dbnull 而不是用!代替is。null 是c 中的null,dbnull是資料...
String的isEmpty和null區別
isempty 是jdk封裝的方法,是基於字串物件的,如果沒有分配記憶體,即string s 或string s null 此時字串未分配記憶體,呼叫它的類方法自然報空指標異常 null是判斷字串有沒有被分配記憶體空間,即該字串是否指向乙個記憶體位址,而 已經是乙個有值的字串了,只是它的值比較特殊,...