泛型如何影响C#和.NET的设计?

Joa*_*nge 17 .net c# generics

这可能是一个广泛的问题,但这是我不太清楚和非常好奇的事情.

通常,对于某些问题,我听到的原因是因为Generics在.NET 1.0中不可用.这让我想到以下两件事之一:

  1. 之前没有想到泛型,所以开发人员在.NET 1.0之后提出它可能会极大地影响C#和.NET的设计,但由于已做出的决定(向后兼容性)而无法实现.

  2. 泛型从一开始就一直在计划中,因此不使用.NET 1.0发布它的唯一问题是无法在2.0之前使用它.但除此之外,没有引入或错误的冗余功能,提出了不可逆转的决定.

我大多假设#1,但实际情况是#2?

Ric*_*iwi 11

泛型已经存在了很长时间,并且可以与C++模板进行松散的比较,尽管这个概念(以及可能在其他语言中的实现)早于它.

.Net 1.0是平台的第一个版本,所以计划是运送合理的东西.如果任何体面的架构师在团队中,泛型将不得不处于"计划的未来",但是可以在以后添加.事实上,关于实现.NET泛型的论文是在一年前发布的.Net Framework 1.0 RTM最终出现了.

时间表:(http://en.wikipedia.org/wiki/List_of_.NET_Framework_versions)

2002-03-05 .Net Framework version: 1.0.3705.0 released
~May, 2001 Don Syme's paper on "Design and implementation of generics for .NET"
Run Code Online (Sandbox Code Playgroud)

微软可能用了10年的时间来构建.Net Framework 4.0(作为1.0版本),但是如果有如此多的代码和许多功能,那么如果项目能够成功的话,需要5年才能找到所有的错误和可用性问题.

所以问题的答案是#2.

Don Syme主要为C#和.Net设计并实现了泛型.

资源

Anders Hejlsberg是我的英雄 - 来自维基百科 - Turbo Pascal的原作者,Delphi的首席架构师,后来是C#的首席架构师

  • @Richard你忘记了50美元的TurboPascal! (2认同)

Han*_*ant 6

我几乎可以肯定,从一开始就设想了仿制药.完全意识到工作将是相当可观的.该项目由Don Syme(F#成名)领导,他的第一本关于该设计的出版物于2001年1月出版 .CLR作为给定的文件呈现,该文件记录了MSIL的新增内容,尽管当时.NET 1.0尚未发布然而.那又过了一年.总而言之,可能可以得出结论,将它们用了近4年的时间才能将它们整合到具体的运输软件中.


aL3*_*891 2

如果您对 C# 的历史感兴趣,请特别查看Channel9和此视频

他们就此类问题对 Anders Hejlsberg进行了多次采访


归档时间:

查看次数:

571 次

最近记录:

7 年,5 月 前