.NET的反射機制是很有特色的,VB,C#,VC語言都支持。
通過反射機制,可以輕而易舉枚舉出一個類的各種信息,除了屬性外,還可以獲得構造器、方法、字段等各種信息,類型可以是公共的,非公共的,實例化的,靜態的各種屬性、方法等。
這裡給出一段VC.NET的實例代碼:
using namespace System;
using namespace System::Reflection;
//定義測試用的類 Student
public ref class Student
{
private:
String^ name;
Int32 number;
String^ address;
public:
Student(String^ name, String^ address, Int32 number)
{
this->name = name;
this->address = address;
this->number = number;
}
property String^ Name
{
String^ get()
{
return name;
}
void set(String^ value)
{
name = value;
}
}
property Int32 Number
{
Int32 get()
{
return number;
}
void set(Int32 value)
{
number = value;
}
}
protected:
property String^ Address
{
String^ get()
{
return address;
}
void set(String^ value)
{
address = value;
}
}
};
void DisplayPropertyInfo(Student^ student, array<PropertyInfo^>^ properties);
int main(array<System::String ^> ^args)
{
Student^ student = gcnew Student("Alice", "No.193, St.Robinson, NY, USA", 1);
student->Name = "Alice.Caley";
student->Number = 2;
Console::WriteLine(student->Name);
Console::WriteLine(student->Number);
Console::WriteLine();
//反射
Type^ type = student->GetType();
//公共實例屬性
array<PropertyInfo^>^ publicProperties = type->GetProperties(static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance));
Console::WriteLine("[Display public property info]");
DisplayPropertyInfo(student, publicProperties);
Cons......余下全文>>
nodes 是treeview對象的一個屬性 但是這個屬性是一個集合 裡面容納了很多元素 每一個元素 又是一個treenode類型的對象
這個語句 就是將一個treenode 類型的對象 node1 添加到 他的nodes集合裡面