再談CLR 構造之謎

2021-05-23 08:47:18 字數 1703 閱讀 8977

這一篇談談型別構造的問題。主要針對構造器這個層面進行一些**。

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 書這樣說 建構函式最重要的作用是建立物件 其實這並沒說清楚,建立乙個物件要分為兩步,第一步是物件的記憶體的分配,第二步是物件的初始化。而物件的記憶體分配是由編譯器來完成的,物件的初始化才是由建構函式完成的。建構函式是給...