null可賦值任何變量,將變量置為空?
DBNull只用于DataRow對象,表示數據庫中的空值?
String.Empty是0長度字串?
Convert.IsDBNull判斷是否為DBNull
?
DBNull.Value與Null的區別
Null是.net中無效的對象引用。
DBNull是一個類。DBNull.Value是它唯一的實例。它指數據庫中數據為空(<NULL>)時,在.net中的值。
以下是我測試的一個例子。
例:表tbl_Student
id????name????address
1????? jim????? <NULL>
將上述表數據填充到.net 的名為dt的DataTable中。
dt.Rows[0]["address"]不等于null但是等于DBNull.Value.
可見null表示一個對象的指向無效,即該對象為空對象。
DBNull.Value表示一個對象在數據庫中的值為空,或者說未初始化,DBNull.Value對象是指向有效的對象。
另外注:對上述dt,如果有如下代碼:dt.Rows[0][100]。結果如何?
并非想象中的null。而是出現異常:索引超出數組界限。
對于普通的引用類型變量,如果指向對象為null,則會提示:未將對象引用設置到對象實例。但對于使用dt.Rows[i][j]取值,如果第i行存在但i行沒有j列,則直接出現異常,不會返回一個指向null的dt.Rows[i][j]。
所以:使用(dt.Rows[0][100]!=null)判斷沒有意義。為避免0行的100列不存在。可以判斷(dt.Rows[0].ItemArray.Length>100).
string.Empty不分配存儲空間
????? ""分配一個長度為空的存儲空間???
????? 所以一般用string.Empty
為了以后跨平臺,還是用string.empty
在 C# 中,大多數情況下 "" 和 string.Empty 可以互換使用。比如:
string s = "";
string s2 = string.Empty;

if (s == string.Empty)?
{
?
判定為空字符串的幾種寫法,按照性能從高到低的順序是:
s.Length == 0????? 優于 s == string.Empty????? 優于 s == ""
您關于String.Empty和Null的問題是這樣的,這兩個都是表示空字符串,其中有一個重點是string str1= String.Empty和 string str2=null 的區別,這樣定義后,str1是一個空字符串,空字符串是一個特殊的字符串,只不過這個字符串的值為空,在內存中是有準確的指向的,string str2=null,這樣定義后,只是定義了一個string 類的引用,str2并沒有指向任何地方,在使用前如果不實例化的話,都將報錯。textBox1.Text的值為零長度字符串 ""。?
null是C#關鍵字,是表示不引用任何對象的空引用的文字值。null 是引用類型變量的默認值。?
DBNULL表示類,表示空值.?
該類用于指示不存在某個已知值(通常在數據庫應用程序中)。?
在數據庫應用程序中,空對象是字段的有效值。該類區分空值(空對象)和未初始化值(DBNull.Value 實例)。例如,表可以包含具有未初始化字段的記錄。默認情況下,這些未初始化字段具有 DBNull 值。?
String.Empty表示空字符串,該屬性為只讀.?
Convert.IsDBNULL(object value)是一個方法,就是判斷參數對象是否為DBNULL對象類型,如果是返回true,不是返回false
C#中空值(null)與空字符串("")的區別
問:
string aa = String.Empty;
string aa = null;
string aa = "";
有什么區別?
答1:
一、
string aa;
和
string aa = null;
一樣。
他么都是聲明了一個sting對象的名字aa(可以理解為C\C++中指向sting類型變量的指針,或者說引用),但是并沒有賦予aa一個與之對應的實際對象(沒有內存分配)。所以aa在這里什么都不是,等待分配。
二、
string aa = String.Empty;
和
string aa = "";
以及
string aa;
aa="";
是一樣的。
aa被聲明為一個空的字符串。
實際上是aa在這里代表了一個內容為空字符串的字符串對象。
三、
究竟前面兩種情況在使用中有什么不一樣呢?
前者由于沒有指向具體對象,所以在沒有將它指向具體對象之前,不能用“.”運算符引用string類對象的很多方法和屬性。
但是后者就可以。
?
答2:
empty
使用 Empty 常量值初始化字符串可新建字符串長度為零的 String 對象。零長度字符串的字符串表示形式為 ""。使用 Empty 值(而不是 null)初始化字符串可以降低發生 NullReferenceException 的可能性。
Null 字符串和空字符串
空字符串是不包含字符的 System.String 對象的實例。在各種編程方案中經常會使用空字符串表示空白文本字段。可以對空字符串調用方法,因為它們是有效的 System.String 對象。
相反,null 字符串并不引用 System.String 對象的實例,任何對 null 字符串調用方法的嘗試都會生成 NullReferenceException