複古運動: 看C#語言的發展)

來源:互聯網
上載者:User
由於多種原因,沒去找出處,下面僅是轉載

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語言中都已經存在了的. 現在把它翻出來, 稍微改變一下, 又變成新的了. 很大程度上,這種現象跟流行服飾是一樣. 實在沒什麼東西可創新了, 就複古吧!!!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.