CLR 擴展存取修飾詞至命名空間、巢狀類型,並支援組件內/外雙重可見性。C++/CLI 提供比 C# 更精細的控制。
public ref class R {
public: // 組件內外皆可見
private public: // 僅組件內可見
protected public: // 組件內 + 衍生類(跨組件)可見
};
C# 風格屬性語法,編譯器自動生成 get_Prop/set_Prop 與中繼資料。
property String^ Name {
String^ get() { return m_name; }
void set(String^ v) { m_name = v; }
}
// 存取性獨立控制
property String^ Name {
public: String^ get();
private public: void set(String^);
}
// 簡略寫法:自動實作
property String^ Name;
委派綁定靜態/實例方法,支援多播鏈結。
delegate void Func();
ref struct T {
void InstanceMethod() {}
static void StaticMethod() {}
};
Func^ f = gcnew Func(gcnew T(), &T::InstanceMethod);
f += gcnew Func(&T::StaticMethod); // 多播
f(); // 依序調用
C++/CLI 提供空前的威力與優雅語法:精細存取控制、原生屬性語法、型別安全委派,在不犧牲效能前提下完整支援 .NET 應用開發。