從c#數組求和說起


c#是一種玩具語言

為什么這么說,

舉個簡單的例子,提問:對數組[1,2,3]求和有幾種方法? 

我能說出來的,四種。說出來,不是上網查出來。

for,foreach,sum,while。

for好像大家都不提倡,foreach舉例的時候用到比較多,sum是牛逼哄哄的各路”老師“推薦最多的用法,為什么說”老師"要加引號,因為到現在為止沒見到誰用sum的時候考慮集合為空的情況,而集合為空的時候sum會拋異常。

foreach呢,枚舉,牛逼吧。。。現在我加一個條件,第二個數如果等於1要求退出循環,foreach怎么辦?正確的寫法是,先int 一個Index ,在循環體外面,循環體里遞增,index==2的時候判斷。定義在循環體外面! 我還能說什么?本身就沒帶來多少可讀性的語法糖,簡直是bug一樣的存在。

foreach和yield聯用能提供一種偽enumable,使非集合的變量提供一種偽集合的效果。等等,等等。這好像是框架應該做的事情吧,不是語言應該做的吧?這是任何需要的場合程序員都能自己做出來的效果吧?我定義個偽集合類和for聯用不能達到這個效果嗎?

好的,不重復發明輪子,好的。c#和基礎類庫加起來其實就是個開發框架,好的。

厲害,語言和框架本身是一體的。

那么請你把for移除出去,sum也移除出去吧。同樣的邏輯,四種不同的寫法,各自有各自的優缺點,這樣還不算是重復發明輪子嗎?能不能集中力量把foreach完善好,加一個類似於獲取當前index的功能,或者把sum完善好,讓它增加一個默認值。 現在維護的時候要同時記四套方案各自優缺點,何必呢?其實foreach sum提供的優化,跟真正的應用框架完全不能相比,企業級的應用在做框架的時候,肯定還得寫自己的一大堆方法,就好比說我是魯迅筆下的小伙計,我希望茴香豆的茴字,當然是只有一種寫法最好最好,記賬本來就是體力活,為什么還要在字體寫法上增加復雜度,你奶奶的,會四種寫法對除了孔乙己外其他人都么用。

類庫是有不少,java也有啊?那種成功的語言沒有類庫?只要開發一次就有了,這些微軟是做了,他不做,也一定會有人做。然后呢,網絡請求多少種寫法,webrequest,webclient,httpclient?其實變成字節流以后原理都差不多好不好?我現在要記你那么多方法才能維護好代碼,我還不如直接放棄這種語言,找一種簡單的語言,然后把原理搞清楚,有類庫用類庫,沒有類庫就自己寫,對於資深程序而言那樣更有積累性好不好?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM