Kenny Kerr 一篇名為C++: The Most Powerful Language for .NET Framework Programming文章中的對比表:
描述 |
C++/CLI |
C# |
建立參考型別的對象 |
ReferenceType^ h = gcnew ReferenceType; |
ReferenceType h = new ReferenceType(); |
建立實值型別的對象 |
ValueType v(3, 4); |
ValueType v = new ValueType(3, 4); |
參考型別在堆棧上 |
ReferenceType h; |
N/A |
調用Dispose方法 |
ReferenceType^ h = gcnew ReferenceType; delete h; |
ReferenceType h = new ReferenceType(); ((IDisposable)h).Dispose(); |
實現Dispose方法 |
~TypeName() {} |
void IDisposable.Dispose() {} |
實現Finalize 方法 |
!TypeName() {} |
~TypeName() {} |
裝箱(Boxing) |
int^ h = 123; |
object h = 123; |
拆箱(Unboxing) |
int^ hi = 123; int c = *hi; |
object h = 123; int i = (int) h; |
定義參考型別 |
ref class ReferenceType {}; ref struct ReferenceType {}; |
class ReferenceType {} |
定義實值型別 |
value class ValueType {}; value struct ValueType {}; |
struct ValueType {} |
使用屬性 |
h.Prop = 123; int v = h.Prop; |
h.Prop = 123; int v = h.Prop; |
定義屬性 |
property String^ Name { String^ get() { return m_value; } void set(String^ value) { m_value = value; } } |
string Name { get { return m_name; } set { m_name = value; } } |