.net學習心得

1.反射:反射是.net中的重要機制,通過反射可以在運行時獲得.net中每一個類型,包括類、結構、委託和枚舉的成員,包括方法、屬性、事件,以及構造函式等。有了反射,既可以對每一個類型了如指掌。

下面來演示一下反射的實例

(1)新建一個類庫項目。在解決方案上單擊右鍵選擇添加“新建項目”,在彈出來的框中選擇“類庫”,在下面名字欄中輸入classlib。然後刪除class1類,新添加一個類“classperson”,添加如下代碼:

namespace classlib

{

public class classperson

{

public classperson():this(null)

{

}

public classperson(string strname)

{

name = strname;

}

private string name;

private string sex;

private int age;

public string name

{

get { return name; }

set { name = value; }

}

public string sex

{

get { return sex; }

set { sex = value; }

}

public int age

{

get { return age; }

set { age = value; }

}

public void sayhello()

{

if (null==name)

console.writeline("hello world");

else

console.writeline("hello," + name);

}

}

}

添加完之後編譯生成一下,就會在這個類庫項目中的bin\debug中有一個classlib.dll檔案。然後添加一個控制台應用程式。引入system.reflaction的命名空間。添加的代碼如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.reflection;//添加反射的命名空間

namespace consoleapplication4

{

public class program

{

static void main(string[] args)

{

console.writeline("列出程式集中的所有類型");

assembly ass = assembly.loadfrom("classlib.dll");

type[] mytype = ass.gettypes();

type classperson = null;

foreach (type p in mytype)

{

console.writeline(p.name);

if (p.name=="classperson")

{