Hello World
Spiga

标签:泛型

Why Java Sucks and C# Rocks(4):泛型

2010-05-17 16:23 by 老赵, 3810 visits
摘要:Java 5.0和C# 2.0发布于同一年,各自添加了一个重要的特性:泛型。泛型可以让程序员针对泛化的数据类型编写相同的算法,这大大增强了两种语言的类型系统及抽象能力。不过即便是这看似相近的功能,Java和C#两者在语言实现和功能上也有很明显的区别,这甚至会形成编程方式上的不同。在这里可能需要事先打声招呼,因为在这个特定的话题上,语言和运行时的确是密不可分的,因此在这篇文章中我会涉及到相对较多的“运行平台”上的比较,而这点在整个系列中是我尽量避免的。不过您请放心,只此一次,欢迎监督。 阅读全文

为什么JVM上没有C#语言?浅谈Type Erasure特性

2010-02-22 15:50 by 老赵, 9049 visits
摘要:JVM上目前已经有许多语言了:JRuby,Jython,也有一些特定于JVM平台的语言,如Scala和Groovy等。但是,为什么JVM上没有C#语言呢?按理说,这门和Java十分相似,却又强大许多的语言更容易被Java程序员接受才对。有人说,Sun和微软是对头,怎么可能将C#移植到JVM平台上呢?嗯,有道理,但是为什么社区里也没有人这么做呢(要知道JVM上其他语言都是由社区发起的)?其实在我看来,这是受到了技术方面的限制。例如:Type Erasure。 阅读全文

一次失败的尝试(下):无法使用泛型的Attribute

2009-11-10 16:07 by 老赵, 15260 visits
摘要:原本打算两篇写在一起,但是我认为这两个话题本身并没有太大关联,因此分开,便于查询。其实在构建Attribute的时候,我们经常会从构造函数中传入一个Type类型,然后在Attribute中使用Activator.CreateInstance或其他的“反射”方法来构造对象。那么,我忽然想,为什么不能使用泛型的Attribute呢?有了泛型便可以利用静态检查,也可以获得其他有用的特性。只可惜,C#并不支持在Attribute中使用泛型……而且这点在C# 4中也基本不会有所改变了。 阅读全文

从汇编入手,探究泛型的性能问题

2009-05-29 21:21 by 老赵, 21730 visits
摘要:经过了《泛型真的会降低性能吗?》一文中的性能测试,已经从实际入手,从测试数据上证明了泛型不会降低程序效率。只是还是有几位朋友谈到,“普遍认为”泛型的代码性能会略差一些,也有朋友正在进一步寻找泛型性能略差的证据。老赵认为这种探究问题的方式非常值得提倡。不过,老赵忽然想到,如果从能从汇编入手,证明非泛型和泛型的代码之间没有性能差距——好吧,或者说,存在性能差距,那么事情不就到此为止了吗?任何理论说明,都抵不过观察计算机是如何处理这个问题来的“直接”。因此,老赵最终决定通过这种极端的方式来一探究竟,把这个问题彻底解决。 阅读全文
1
使用Live Messenger联系我