如果重新設計C#你最希望增加什麼特性,去掉什麼特性,改變什麼語法?
從2000年6月份到現在(2017/04/05),C#已經演進了將近17年了,一個語言的歷史越悠久,其兼容性問題就越突出,從C#1.0到現在,語言設計上一定針對兼容性做過不少的妥協,如果現在重新設計C#的話,你最希望去掉什麼特性,新增什麼特性,修改什麼特新。
去掉IEnumerable、IEnumerator、ArrayList等所有有泛型版本的老容器,還有讓Task可以寫成Task&
我寧願犧牲C# 5.0以後的所有東西,也想讓這個事情先出現。
1、本地不可變變數。
2、不可空類。
3、傳遞函數不需要顯式寫委託。(我的意思是,函數參數不應該顯式指定用哪個委託)
4、類默認為Sealed。
5、高階函數。
邀請我的,是要我回答 inductive 和 Pi 么。
在集合為空的時候自動new一個啊!
Comments = Comments ?? new List&
Comments.Add(comment);
好彆扭啊。或者新增一個方法:AddEvenNull()?
只有我希望C#把那些繼承自C/C++的那些int, char, float, double什麼的都去掉,然後統一到Integer, Decimal和String三個類型里嗎……
C#裡面有太多在設計之初為了「向C++/Java語法兼容」而遺留下的,現在看起來似乎已經沒什麼必要的東西了。
被輪子哥屏蔽了好傷心……
輪子哥的回答里說到的新Action的語法我都想好了,就這樣:
public delegate TResult Func&
public delegate void Action&
這種問題有意義?都是根據自己的習慣來腦補,真設計起來就吔屎了。
去掉 begin end模式,使用 asy
可以直接編譯輸出Native執行文件。。
讓Framework的Size小點,小點,小點
去掉 stream ,使用buffer概念。
像對待string一樣對待StringBuilder可以嗎
去掉函數必須寫類里
增加
宏(lisp那種,不是c那種)模板改變現有的介面為協議
增加一個定義數據交換的介面--------分割線--------
以下只是單純寫起來省力點元組展開
數組推導式
解構賦值推薦閱讀:
※Unity3d&Cocos2dx進階書籍推薦?
※new和malloc內部的實現方式有什麼區別?
※如何高效的學習Nginx源碼,汲取養分?
※為什麼說goto是一種不好的用法?
※如何用 C 語言畫一個「聖誕樹」?