下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → C++/CLI的“值类型的强类型装箱实例”__教程
C++/CLI的“值类型的强类型装箱实例”__教程
日期:2007-5-15 21:08:54 人气:48     [ ]
上一页 [1] [2] 下一页
 

近来接到几个朋友问Visual C++ 2005 (C++/CLI) Webcast中讲的“值类型的强类型装箱实例”是什么?

讲座比较匆忙,因此对这个技术点只是点了一下,没有详细展开。这里借blog把它展开说一下。


首先来看下面的C#代码:

using System;
using System.Collections;

 

struct MyClass
{
    public    int data;
               
}


class Test
{
    public static void Main()
    {
        MyClass myClass1 = new MyClass();
        MyClass myClass2=new MyClass();

        ArrayList list=new ArrayList();

        list.Add(myClass1);
        list.Add(myClass2);

        Print(list);

        for(int i=0;i<list.Count;i++)
        {
            MyClass temp=(MyClass)list[i];
            temp.data=i+1;

            list[i]=temp;// 注意这句话

        }

        Print(list);

    }

    public static void Print(ArrayList list)
    {
        for(int i=0;i<list.Count;i++)
        {
            MyClass temp=(MyClass)list[i];
            Console.WriteLine(temp.data);

        }
    }
       
}
其中list[i]=temp这句话很重要,否则无法实施改变,因为temp是一个“和list中hold的boxed的值实例无关的”stack上的实例。

但是如果使用C++/CLI,我们就可以这么做:

using namespace System;
using namespace System::Collections;

value class MyClass {
public:
   int data;
};

void Print(ArrayList^ list);

int main() {
   MyClass^ hMyClass1 = gcnew MyClass;
   MyClass^ hMyClass2 = gcnew MyClass;

   ArrayList^ list=gcnew ArrayList();

   list->Add(hMyClass1);
   list->Add(hMyClass2);

   Print(list);

    for(int i=0;i<list->Count;i++)
    {
        MyClass^ temp=(MyClass^)list[i];
        temp->data=i+1;  // 注意这里无需再有list[i]=temp这句话,因为temp引用的就是“list中hold的boxed的值实例”
    }

    Print(list);

}

void Print(ArrayList^ list)
{
    for(int i=0;i<list->Count;i++)
    {
        MyClass^ temp=(MyClass^)list[i];
        Console::WriteLine(temp->data);
    }
}

出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.