在.Net Framework 2.0发布后,泛型就已经深入人心。在CF2.0中也加入了泛型,但大家可知道CF2.0与非精简版中泛型的区别呢?下面将详细叙述,我在.Net CF中使用泛型的几个注意事项。

泛型介绍:
泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。
举例:原先使用集合类型存储数据,数据量大后,装箱拆箱不但影响效率,而且也非安全,毕竟存放进集合的都是Object对象。泛型对象在声明后,即定义好存放的类型,避免装箱拆箱及数据转换。
泛型的使用面很广,有泛型类、泛型接口、泛型方法、泛型委托等。那么多的使用面给开发人员提供了相当大的便捷。

在我的实际应用中,发现.Net CF的泛型不支持2点。
1.不支持泛型递归嵌套
大家可能很奇怪,什么叫泛型递归嵌套。泛型递归嵌套即泛型的对象类型中仍然使用该泛型本身,举例:List<List<int>>。既然泛型允许存放任何类型,那当然应该支持存放一个泛型对象,否则也谈不上泛字吧。在非精简版中,是支持泛型嵌套的,但可惜精简版中不支持。

2.在泛型方法中,最多支持8个泛型参数。
泛型方法中,我们可以约束实际的参数个数,而不必约束对象类型,这样大大提高了可重用性。不必类似以前猛定义Object。精简版中同样不支持。

实际测试如下:
开发平台:VS2008,Windows Mobile 5.0, .Net Compact Framework 2.0

1.在.Net Framework下的代码:
}
运行结果:
.Net Compact Framework 泛型使用的注意点
clsA.ClsB实例化时也运行通过。
调用GetInfo2时,传入9个参数,程序照样执行。

2.移动设备下的代码:
.Net Compact Framework 泛型使用的注意点private void menuItem4_Click(object sender, EventArgs e)
        }
注释部分,代码运行不能通过。具体的Demo大家可以下载运行。

原因:
1..NET Compact Framework 在缺少验证工具的情况下不验证正常执行的约束。绑定到泛型参数时,映射仍然会验证约束。
所以编译时不会抱错,但运行时出错。
2..NET Compact Framework 为泛型类型和方法提供了有限的映射功能,因为有限,所以不能支持太强大的使用。但已经可以满足大家的基本需求。

示例Demo下载:GenericDemo.rar

Author: appleseeker
Date: 2008-03-01

相关文章:

  • 2021-07-15
  • 2022-12-23
  • 2021-06-10
  • 2021-12-07
  • 2022-12-23
  • 2022-01-31
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-15
  • 2021-11-09
  • 2021-08-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案