读书人

CLR,该怎么处理

发布时间: 2012-01-19 20:57:58 作者: rapoo

CLR

我自己定义的一个类

ref class tagReadBuffer
{
public:
int D0008;
int D0009;
};

在From里面

tagReadBuffer ^ a = gcnew tagReadBuffer;


Void Button(...)
{
tagReadBuffer ^b = a;
b->D0008=1;
b->D0009=1;

//问题就在这里 为什么 a的值也跟着改啊? 我刚步入CLR 希望前辈能告诉下 我用的是VS2010 是做C++的、

}

[解决办法]
tagReadBuffer ^ a = gcnew tagReadBuffer;//生成指针、(其实还有个同步索引块)内存空间,指针指向内存地址
tagReadBuffer ^b = a; //生成指针,b与a相同

两个指针指向同一片内存,即同一个对象
这里要把指针和对象分开来看
你也可以按浅拷贝理解

[解决办法]
CLR是CLI的实现版本,是一种运行时环境,.NetFramework的主要执行引擎.

拷贝是有一个新的内存.

@sj97a007
的解释正确

读书人网 >.NET Framework

热点推荐