string 不可以是“可空類型”嗎?
string? str1;
這樣報錯呀?
如果 string 類型不能成為可空類型。
我要用 str1 得到 組合框控件的 selectedvalue 值,如果 selectedvalue為null,就會出問題呀
如
str1=cbo1.SelectedValue.ToString();
此時,如何 cbo1.SelectedValue 為null時,就會報錯呀?
22 个解决方案
cbo1.SelectedValue 為null 你還ToString();當然報錯。
那就不是string是否是可空類型的問題
你如果這樣做就必須先判斷cbo1.SelectedValue是否為null,不是null再ToString()
str1=(cbo1.SelectedValue=null?"":cbo1.SelectedValue.ToString());
string str = “”;
string str;
因為它就是可空類型,所以才會出現空引用異常。
你使用之前必須判斷它是不是null,string.ToString()也是多余的。
string str = string.Empty;
str = cbo1.SelectedValue??string.Empty;
string 類型本身就可以為空啊!
干嘛還要多此一舉……
Nullable<T>僅針對值類型,因為值類型(struct)是不能為空的,而引用類型(class)本身是可以為空的,因此沒有意義。而String是引用類型,不是值類型。
string 本身就可空。
string str1=cbo1.SelectedValue;
if(str1 == null)
// 空值
看你在什么地方用了
如果提示 不能為空
可能是因為 你的數據類型不要呢不能為空
可空類型是用在值類型上的,引用類型本來就可以設置為null(空引用)
string str = null;
string str = "";
都是空值、看你需要用哪一種
兩者區別為:前者只聲明變量、但系統當時不予開辟內存空間
后者則為空字符串、內容為空、但系統已給其分配了一塊屬於字符串類型的內存空間
string str = cbo1.SelectedValue ?? string.Empty;
當cbo1.SelectedValue == null時,str就為后面的string.Empty
否則str為cbo1.SelectedValue
string str=cbo1.SelectedValue==null?"":cbo1.SelectedValue.toString();