DateTable對映到物件的字段和屬性

2021-06-25 08:30:21 字數 1470 閱讀 8786

作為乙個菜鳥,因該有顆不甘做菜鳥的心。這裡介紹乙個c#中比較高階點的技術,反射技術。曾經有人說過當你懂了反射技術,就告別了菜鳥。這裡先介紹乙個反射的有趣例子。接下幾天後來個系列講解,希望大家收看。

將datatable中的資料對映到物件的字段和屬性。也是現在好多軟體做的關係-物件對映技術。這裡新建乙個控制台程式。

classfoo

}

staticdatatable gettable()

4、對映單個物件方法

//乙個例項繫結

static t binddata(datatable dt)

// create object

var ob = activator.createinstance();

// get all fields

var fields = typeof(t).getfields();

foreach (var fieldinfo in fields)

}// get allproperties

var properties = typeof(t).getproperties();

foreach (var propertyinfo in properties)

}return ob;

}

//例項列繫結

staticlistbinddatalist(datatable dt)

var fields = typeof(t).getfields();

var properties = typeof(t).getproperties()

listlst = newlist();

foreach (datarow dr in dt.rows)

}foreach (var propertyinfo in properties)

}lst.add(ob);

}return lst;

}

staticvoid main(string args)

, ",foo.username);

console.write("level:",foo.level);

console.writeline();

listlstfoo =binddatalist(dt);

console.writeline("輸出實體集合轉化");

foreach (foo obj in lstfoo)

, ", obj.username);

console.write("level:",obj.level);

console.writeline();

}console.read();

}

複雜的事情都是有很多簡單是事情組成,一點一點早日擺脫菜鳥。

內網對映到公網訪問

解壓之後 vim frps.ini common bind addr 0.0.0 0 與客戶端 繫結埠 bind port 9000 dashboard 使用者名稱 dashboard user user dashboard 密碼 dashboard pwd pwd dashboard 埠,啟動成功...

將檔案對映到記憶體

mmap的好處 和read write系統呼叫相比不會產生無關的副本 如果不出錯就不會有系統呼叫 操作環境切換等開銷 不再需要lseek呼叫。mmap的壞處 記憶體對映總是pagesize的整數倍,會浪費一定的記憶體 如果要對映的內容非常大的時候可能找不到連續的線性位址空間 建立並維護核心相關資料結...

區間對映到區間 in Python

需要情形下,需要將乙個區間對映到另乙個區間。如將0 1對映到10 32之間,應該如何設計演算法?比如某大學教師在學校規定的掛科機率下進行期末考試,如果學生都考得很差,那麼他就需要根據適當的形式去調整學生的成績。比如,學生的成績普遍較差,分布在20分到65分之間,那麼需要對映到55 100之間,將及格...