2
閱讀this MSDN article,我碰到的是簡單的例子,這因爲我對一些原生的C做一些RAII類++接口做整個作業真能勝任我就來了:(我做的第一次)爲什麼Finalize應該被保護?
ref class Wrapper {
Native *pn;
public:
// resource acquisition is initialization
Wrapper(int val) { pn = new Native(val); }
// this will do our disposition of the native memory
~Wrapper(){ delete pn; }
void mfunc();
protected:
// an explicit Finalize() method—as a failsafe
!Wrapper() { delete pn; }
};
這個類完全符合我迄今爲止所寫的內容。除此之外,我還沒有實現Finalize方法。但是,在想知道它的特性和用法,以及在我能夠更深入地掌握它之前,我想知道是否將Finalizer方法放在受保護的範圍內是一般用途和良好習慣。