17.7 泛型结构

泛型结构和泛型类非常相似,泛型结构也有类型参数和类型参数约束,且规则相同。作为演示,我们以一个名为ValueObject的结构为例来说明泛型结构,它带有一个类型参数T,有一个字段和一个只读属性,我们分别使用int和string两种类型实参实例化它,如代码清单17-8所示。

代码清单17-8 泛型结构代码示例


1 namespace ProgrammingCSharp4

2{

3 class GenericsSample

4{

5 public static void Main()

6{

7 ValueObject<string>vo1=new ValueObject<string>("hello world!");

8 ValueObject<int>vo2=new ValueObject<int>(2010);

9

10 System.Console.WriteLine(vo1.TheData);

11 System.Console.WriteLine(vo2.TheData);

12}

13}

14

15 struct ValueObject<T>

16{

17 private T_data;

18

19 public ValueObject(T data)

20{

21_data=data;

22}

23

24 public T TheData

25{

26 get

27{

28 return_data;

29}

30}

31}

32}


上述代码的运行结果为:


hello world!

2010