C 匿名型別和動態解析減少定義傳輸類模板

2022-08-27 22:12:17 字數 604 閱讀 1737

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...