這一篇談談型別構造的問題。主要針對構造器這個層面進行一些**。
1. 有哪幾種構造器
2.何時呼叫構造器
3. 特殊問題
//如果沒有預設構造器,則編譯出錯
employee emp1 = new employee("ares", "chen");
console.writeline(emp1);
//2.通過createinstance方式進行構造,這是呼叫預設構造器
employee emp2 = assembly.getexecutingassembly().createinstance(typeof(employee).fullname) as employee;
//如果沒有預設構造器,則編譯不出錯,而執行出錯,因為createinstance方法是呼叫預設構造器的
emp2.firstname = "ares";
emp2.lastname = "chen";
console.writeline(emp2);
//3.通過帶引數的createinstance方式構造,這是呼叫自定義構造器
employee e*** = assembly.getexecutingassembly().createinstance(
typeof(employee).fullname,
true, bindingflags.createinstance,
null,
newobject ,
thread.currentthread.currentculture,
null) as employee;
console.writeline(e***);
//4.通過隱式操作符來構造
再談CLR 目標平台的問題
曾經有朋友問到這樣的乙個問題 我要開發乙個能執行在64位機器上的應用程式,是不是應該使用visual studio 的64位版本來做?這是乙個似是而非的問題,首先其實visual studio 並沒有所謂的64位版本 然後,其實預設情況下,visual studio所編譯出來的應用程式就是可以既執行...
再談CLR 目標平台的問題
曾經有朋友問到這樣的乙個問題 我要開發乙個能執行在64位機器上的應用程式,是不是應該使用visual studio 的64位版本來做?這是乙個似是而非的問題,首先其實visual studio 並沒有所謂的64位版本 然後,其實預設情況下,visual studio所編譯出來的應用程式就是可以既執行...
再談建構函式
很多國內的c 圖書中,關於建構函式的說明,沒有真正說清楚建構函式的作用。有很多c 書這樣說 建構函式最重要的作用是建立物件 其實這並沒說清楚,建立乙個物件要分為兩步,第一步是物件的記憶體的分配,第二步是物件的初始化。而物件的記憶體分配是由編譯器來完成的,物件的初始化才是由建構函式完成的。建構函式是給...