来自:The Most Powerful Language for .NET Framework Programming
http://msdn.microsoft.com/en-us/library/ms379617(VS.80).aspx比较:
| Description |
C++/CLI |
C# |
| Allocate reference type |
ReferenceType^ h = gcnew ReferenceType; |
ReferenceType h = new ReferenceType(); |
| Allocate value type |
ValueType v(3, 4); |
ValueType v = new ValueType(3, 4); |
| Reference type, stack semantics |
ReferenceType h; |
N/A |
| Calling Dispose method |
ReferenceType^ h = gcnew ReferenceType;
delete h;
|
ReferenceType h = new ReferenceType();
((IDisposable)h).Dispose();
|
| Implementing Dispose method |
~TypeName() {} |
void IDisposable.Dispose() {} |
| Implementing Finalize method |
!TypeName() {} |
~TypeName() {} |
| Boxing |
int^ h = 123; |
object h = 123; |
| Unboxing |
int^ hi = 123;
int c = *hi;
|
object h = 123;
int i = (int) h;
|
| Reference type definition |
ref class ReferenceType {};
ref struct ReferenceType {};
|
class ReferenceType {} |
| Value type definition |
value class ValueType {};
value struct ValueType {};
|
struct ValueType {} |
| Using properties |
h.Prop = 123;
int v = h.Prop;
|
h.Prop = 123;
int v = h.Prop;
|
| Property definition |
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; } } |
thanks