Visual C++ .NET/Data Type/Boxing Unboxing — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 15:05, 26 мая 2010
Boxing in Action
<source lang="csharp">
- include "stdafx.h"
using namespace System;
value class POINT { public:
int x, y; POINT(int x, int y) : x(x) , y(y) {}
}; void main() {
POINT p1(1,2); Object ^o = p1; POINT ^p2 = (POINT)o; Console::WriteLine("p1 x={0} y={1}\n", p1.x, p1.y); Console::WriteLine("o x={0} y={1}\n", ((POINT)o).x, ((POINT)o).y); Console::WriteLine("p2 x={0} y={1}\n", p2->x, p2->y);
}
</source>
unboxing int
<source lang="csharp">
- include "stdafx.h"
using namespace System; Object^ f(Object^ obj) {
Console::WriteLine("In f, with " + obj->ToString() + "."); return obj;
} int main() {
int i = 1; int j = safe_cast<int>( f(i) );
}
</source>