c#作為強型別語言,在序列化和反序列化(json)場景中對字串解析常常需要定義強型別模板,造成編碼上的繁瑣。其實可以使用匿名型別和動態解析減少json序列化時候的資料模板定義;
string a = "1";bool b = true;
double c = 123;
var d = new ;
var o = new ;
var s = jsonconvert.serializeobject(o);
console.writeline(s);
dynamic o2 = jsonconvert.deserializeobject(s);
string a1 = o2.a;
bool b1 = convert.toboolean(o2.b);
double c1 = convert.todouble(o2.c);
string a2 = o2.d.a;
console.writeline(a1);
console.writeline(b1);
console.writeline(c1);
console.writeline(a2);
c dynamic動態型別和匿名類
dynamic expando new system.dynamic.expandoobject 動態型別字段 可讀可寫 expando.id 1 expando.name test string json utils.convertjson.jsonencode expando 輸出 listfi...
C 類和物件(三) 匿名型別
var關鍵字,它用於表示隱式型別化的變數。var與 new關鍵字一起使用時,可以建立匿名型別。匿名型別只是乙個繼承自 object 且沒有名稱的類。該類的定義從初始化器中推斷,類似於隱式型別化的變數。如果需要乙個物件包含某個人的姓氏 中間名和名字,則宣告如下 var captain new firs...
C 物件的靜態型別和動態型別
由於繼承導致物件的指標和引用具有兩種不同的型別 靜態型別和動態型別。靜態型別 指標或者是引用宣告時的型別。動態型別 由實際指向的型別確定。gameobject pgo new spaceship pgo 靜態型別是 gameobject 動態型別是 spaceship asterioid pa ne...