zoukankan      html  css  js  c++  java
  • 复古运动: 看C#语言的发展(转)

    由于多种原因,没去找出处,下面仅是转载

    C#从1.1到2.0再到3.0 , 许多fans为它的新特性欣喜若狂, 其实大部分只是在做一些复古运动.

    C#1.x  基本上抄袭了Java, 
    新加的特性:
    Foreach: 很多语言早就有了这个关键字. 古老的Lisp里用的是DoList 宏.
    delegate: 模仿了Lisp的Funcall.

    C#2.0:
    Generics, 学过C++的人应该对模板都不陌生吧.虽然C#中做了少许改变.
    Anonymous methods:  模仿Lisp 里面的Lambda函数.
    Nullable types: Lisp 里面有(null )函数. 不管是atom 还是 list 都可以是nil.
    aliases: 类似C里面的 #define

    再看C#3.0
    Implicitly Typed Local Variables: 许多弱类型的语言已经这样做了.
    Lambda Expressions: 还是模仿了Lisp 里面的Lambda函数. 比Anonymous Methods 更加像了.
    Anonymous Types: 早就觉得写Entity 太麻烦了, 我以前还写过Code Generation 来生成实体类, Anonymous Types 可就简单多了, Lisp 里面的Macro做的就是Code Generation 的工作.
    Query Expressions: 我以前做的O/R Mapping 跟它有些像. 增加的 from where select 等关键字, 好像是从COmega进化过来的. 这样下去C#的关键字会越来越多, 语言变得越来越难学. 其中yield return 跟Lisp的Loop 方法如出一辙(loop... collecting..)


    其实许多许多的特性, 在古老的Lisp语言中都已经存在了的. 现在把它翻出来, 稍微改变一下, 又变成新的了. 很大程度上,这种现象跟流行服饰是一样. 实在没什么东西可创新了, 就复古吧!!!

  • 相关阅读:
    提出贷方,提出借方
    .Net反编译工具Reflector
    通过SQL Server的位运算功能巧妙解决多选查询
    使用.NET中的XML注释(一) XML注释标签讲解
    从网络中拷贝文件xcopy
    用netsh同步网络配置
    背书
    LINUX开启允许对外访问的网络端口的命令
    PHP在线生成二维码(google api)的代码
    linux常用disk磁盘操作命令(2013最新整理)
  • 原文地址:https://www.cnblogs.com/xiexiaokui/p/1685652.html
Copyright © 2011-2022 走看看