来自: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