日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C#中的DBNull、Null、String.Empty和“”

發布時間:2023/12/20 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中的DBNull、Null、String.Empty和“” 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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


總結

以上是生活随笔為你收集整理的C#中的DBNull、Null、String.Empty和“”的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。