從可空型別到基礎型別的轉換

2021-08-18 21:47:57 字數 730 閱讀 7652

在做一些複雜的型別轉換之前(比如將乙個資料轉換成乙個屬性的型別,屬性可能為可空型別)先判斷該型別是否為可空型別,否則會報如下錯誤:

從「system.string」到「system.nullable`1[[system.int32, mscorlib, version=2.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089]]」的強制轉換無效。

[csharp]view plain

copy

type type = 

typeof

(model.users).getproperties()[i].propertytype;  

//判斷type型別是否為泛型,因為nullable是泛型類,

if(type.isgenerictype && type.getgenerictypedefinition().equals(

typeof

(nullable<>)))

//判斷convertsiontype是否為nullable泛型類

typeof

(model.users).getproperty(

typeof

(model.users).getproperties()[i].name).setvalue(u,convert.changetype(dic[item],type), 

null

);  

可空型別 ?和??

可空型別可以表示所有實際型別的值加上null。如果和資料庫打交道,這就會很有用,因為在資料庫表中遇到未定義的列是很常見的事情。為了定義乙個可空變數型別,應在底層資料型別中新增問號 作為字尾。注意,這種語法只對值型別是合法的,區域性可空變數必須賦值乙個初始值。定義一些區域性可空型別 int?a 10 ...

C 可空型別

可空型別只能用於值型別,不能用於引用型別,引用型別本身支援null值。如果直接把null賦值給int型別,會出現乙個錯誤 無法將 null 轉換成 int 因為它是一種值型別 賦值時應該使用 int?a null 可空型別與一元或二元運算子一起使用是,如果乙個運算元或兩個運算元都是null,其結果為...

可空型別 C Sharp

1.int num null 2.可空型別的 3.可空型別的定義 參見資料夾裡的demo。的執行結果 介紹兩個方法 1.nullable.getvalueordefault方法 不帶引數 其返回值 自己理解的返回值 返回當前值或者預設值0。2.nullable.getvalueordefault t...