从加加开始,加到永远……
C++博客
首页
新随笔
新文章
联系
聚合
管理
posts - 2,comments - 0,trackbacks - 0
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
仅仅是备忘(1)
随笔档案
2007年7月 (1)
2007年3月 (1)
文章分类
C++类库之BOOST(1)
文章档案
2007年3月 (1)
搜索
最新评论
阅读排行榜
1. How to: Iterate Over a Generic Collection with for each(207)
2. CXImage —— 一个图像处理的库(173)
评论排行榜
1. CXImage —— 一个图像处理的库(0)
2. How to: Iterate Over a Generic Collection with for each(0)
How to: Iterate Over a Generic Collection with for each
1
//
for_each_generics.cpp
2
//
compile with: /clr
3
using
namespace
System;
4
using
namespace
System::Collections::Generic;
5
6
generic
<
class
T
>
7
public
value
struct
MyArray :
public
IEnumerable
<
T
>
{
8
9
MyArray( array
<
T
>^
d )
{
10
data
=
d;
11
}
12
13
ref
struct
enumerator : IEnumerator
<
T
>
{
14
enumerator( MyArray
^
myArr )
{
15
colInst
=
myArr;
16
currentIndex
=
-
1
;
17
}
18
19
virtual
bool
MoveNext()
=
IEnumerator
<
T
>
::MoveNext
{
20
if
( currentIndex
<
colInst
->
data
->
Length
-
1
)
{
21
currentIndex
++
;
22
return
true
;
23
}
24
25
return
false
;
26
}
27
28
virtual
property T Current
{
29
T
get
()
{
30
return
colInst
->
data[currentIndex];
31
}
32
}
;
33
34
property Object
^
CurrentNonGeneric
{
35
virtual
Object
^
get
()
=
System::Collections::IEnumerator::Current::
get
{
36
return
colInst
->
data[currentIndex];
37
}
38
}
;
39
40
virtual
void
Reset()
{}
41
~
enumerator()
{}
42
43
MyArray
^
colInst;
44
int
currentIndex;
45
}
;
46
47
array
<
T
>^
data;
48
49
virtual
IEnumerator
<
T
>^
GetEnumerator()
{
50
return
gcnew enumerator(
*
this
);
51
}
52
virtual
System::Collections::IEnumerator
^
GetEnumeratorNonGeneric()
=
System::Collections::IEnumerable::GetEnumerator
{
53
return
gcnew enumerator(
*
this
);
54
}
55
}
;
56
57
int
main()
{
58
MyArray
<
int
>
col
=
MyArray
<
int
>
( gcnew array
<
int
>
{
10
,
20
,
30
}
);
59
60
for
each ( Object
^
c
in
col )
61
Console::WriteLine((
int
)c);
62
}
63
posted on 2007-07-16 23:42
孙明明
阅读(207)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理