上一篇 | 下一篇

c#2.0泛型学习(一)

发布: 2008-6-30 09:24 | 作者: admin | 来源: | 查看: 0次

根据微软的视频教程"跟我一起学Visual Studio 2005C#语法篇"来学,因为里面有比较多的代码示例,学起来比较容易好理解

1.未使用泛型的Stack类

1using System;

2

3public class Stack

4{

5 readonly int m_Size;

6 int m_StackPointer = 0;

7 object[] m_Items;

8 public Stack(): this(100)

9 { }

10 public Stack(int size)

11 {

12 m_Size = size;

13 m_Items = new object[m_Size];

14 }

15 public void Push(object item)

16 {

17 if (m_StackPointer >= m_Size)

18 throw new StackOverflowException();

19

20 m_Items[m_StackPointer] = item;

21 m_StackPointer++;

22 }

23 public object Pop()

24 {

25 m_StackPointer--;

26 if (m_StackPointer >= 0)

27 {

28 return m_Items[m_StackPointer];

29 }

30 else

31 {

32 m_StackPointer = 0;

33 throw new InvalidOperationException("Cannot pop an empty stack");

34 }

35 }

36}

37

2.使用泛型的类

1using System;

2

3public class Stack

4{

5 readonly int m_Size;

6 int m_StackPointer = 0;

7 T[] m_Items;

8 public Stack()

9 : this(100)

10 {

11 }

12 public Stack(int size)

13 {

14 m_Size = size;

15 m_Items = new T[m_Size];

16 }

17 public void Push(T item)

18 {

19 if (m_StackPointer >= m_Size)

20 throw new StackOverflowException();

21

22 m_Items[m_StackPointer] = item;

23 m_StackPointer++;

24 }

25 public T Pop()

26 {

27 m_StackPointer--;

28 if (m_StackPointer >= 0)

29 {

30 return m_Items[m_StackPointer];

31 }

32 else

33 {

34 m_StackPointer = 0;

35 //throw new InvalidOperationException("Cannot pop an empty stack");

36 return default(T);

37 }

38 }

39}

40

41public class Stack1 : Stack

42{

43

44}

45

下为PDF文档,我感觉挺好的,很简单,我听的懂就是好的

/Clingingboy/one.pdf

多个泛型

1class Node

2{

3 public K Key;

4 public T Item;

5 public Node NextNode;

6 public Node()

7 {

8 Key = default(K);

9 Item = default(T);

10 NextNode = null;

11 }

12 public Node(K key, T item, Node nextNode)

13 {

14 Key = key;

15 Item = item;

16 NextNode = nextNode;

17 }

18}

泛型别名

字号: | 推荐给好友

21/212>

评分:0

我来说两句

网络推荐