注册 登录
编程论坛 VC.NET论坛

请教:用ref 关键字(_gc)声明的类以一般的类有什么不同?

zqm0209 发布于 2008-11-29 22:04, 2989 次点击
这是msdn上的一个例子,帮助上说ref(_gc)定义myclass类为引用类类型,那么用ref声明的类与一般的类有什么不同的表现呢?msdn上说的太简略了,请大家指教。

using namespace System::Collections;
public delegate void MyDel();
ref class MyClass {
public:
   void Test() {}
};

void Test(Object ^ x) {
   Console::WriteLine("Type is {0}", x->GetType());
}

int main() {
   // handle to Object can hold any ref type
   Object ^ h_MyClass = gcnew MyClass;

   ArrayList ^ arr = gcnew ArrayList();
   arr->Add(gcnew MyClass);

   h_MyClass = dynamic_cast<MyClass ^>(arr[0]);
   Test(arr);

   Int32 ^ bi = 1;
   Test(bi);

   MyClass ^ h_MyClass2 = gcnew MyClass;

   MyDel^ DelInst = gcnew MyDel(h_MyClass2, &MyClass::Test);
   Test(DelInst);
}
0 回复
1