上回用 Java + IntelliJ 來重構一堆 if/else 的計算運費範例,請見:https://www.youtube.com/watch?v=zO-NnNC-xyg&ab_channel=JoeyChen
這次改用 C# + Rider 來重構一樣的例子,不過這次刻意改用 Func
兩種作法適用場景不同,東西夠小夠單純,想要少一點 class/interface 等 elements,可以先這樣做,到真的有需要時,反正對我來說,要從 Func
## Reference
1) Youtube 版影片:https://youtu.be/9rfVe6Uikt0
2) GitHub commit history: https://github.com/tdd-best/strategy-sample-CSharp/commits/refactoring
3) #TDD與持續重構 培訓參考:https://tdd.best/courses/tdd-continuous-refactoring-2021-05/
--
我知道一般人的 Rider 沒有那個「把三元判斷式 自動替換成 Math.Min()」的燈泡,這是我自己刻的。
有興趣嗎?一起來 #極速開發 玩耍吧:https://tdd.best/courses/extreme-developing-202104/
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
c# interface範例 在 Taipei Ethereum Meetup Facebook 的精選貼文
📜 [專欄新文章] Solidity Weekly #19
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
v0.5.0 改版說明
幾天前,Solidity Version 0.5.0 正式 released。這次大改版主要變動還是以安全為主,語言本身改為需用比較明確的宣告,edge-cases 問題拿掉,且提供更簡單的低階 compiler 介面。
其實這次可以說是累積了相當多的改變,做一次定版。詳細的改版文件可參考 “Solidity v0.5.0 Breaking Changes”,他會有些範例可參考。也可以看 changelog 簡單的更改清單。
如果要升級你的舊程式到 v0.5.0,需要改變的地方如下:(翻譯至 changelog)
.call() 改寫成 .call(““) 或 .call(signature, a, b, c) 改寫成 .call(abi.encodeWithSignature(signature, a, b, c)),且後者只支援 value types。
keccak256(a, b, c) 改寫成 keccak256(abi.encodePacked(a, b, c)) (原理說明可參考 Solidity Weekly #10)
所有 fallback 或 interface function 要宣告成 external,其他每個 function 都要宣告成 public。(各種宣告方式,可參考 Solidity Weekly #12)
所有變數,都要明確宣告其 data location。例如 uint[] x = m_x 要改成 uint[] storage x = m_x,宣告 x 的 data location 是 storage。特別要注意, external function 的變數,必須用 calldata 的 data location 型態。
合約 address 要執行功能前,須先明確轉換成 address type,才能執行其 functions,例如 c 是合約,以前可以寫 c.transfer(…), 現在必須改成 address(c).transfer(…)
如果你要做 transfer,尤其是 function 的變數,要先宣告成 address payable。
其他還蠻多變動的, 請詳見 Solidity v0.5.0 文件。
Solidity Weekly #19 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
c# interface範例 在 紀老師程式教學網 Facebook 的精選貼文
[免費影音教學] 161 部 Qt 教學影片,循序漸進!完全免費!
網址: https://goo.gl/gvUB0h
#Qt #GUI #eLearning
您聽過 Qt 嗎?它是一套能夠跨平台的圖形使用者介面(GUI, Graphical User Interface)開發套件。如果您想開發一套軟體,能夠橫跨桌機、平板、手機、甚至於車用電腦,並且維持相同的原始碼不需做變更,那 Qt 就是您最好的選擇!
Qt 使用的底層程式語言是 C++,所以您開發時,也得用 C++ 來呼叫 Qt 內預先做好的豐富函數。Qt 的應用領域很廣!大到桌機,小到物聯網使用的「單板機(SBC, Single Board Computer,如 Raspberry Pi 之流)」,都可以只學一套 GUI 套件,就能在所有平台,擁有相同外觀、相同開發手法的輸入框、下拉式選單...等視覺元件。所以若您有「跨平台開發」+「想只維持一套原始碼」的需求,Qt 幾乎是您的不二選擇!
這次幫大家製作了五分鐘的介紹影片,希望能幫助各位在瞭解 Qt 這套 GUI 套件上有所幫助!想看高畫質影片記得點選影片右下角的齒輪圖示,然後勾選「高畫質」喔!覺得這篇文章不錯的朋友,請多多按讚鼓勵一下小弟,或者轉發給您 FB 的朋友一起學習、一起進步喔!有任何想問、想討論的主題,請在影片下方留言給我,我會盡快回覆您的!當然也歡迎您提供您覺得不錯的 Qt 學習資源給我,讓更多人知道 Qt 的魅力在哪裡喔!
其它參考網址:
Qt 官網首頁: https://www.qt.io/
Qt 5.7(最新版)發佈主頁: https://www.qt.io/qt5-7/
Qt 應用範例: https://www.qt.io/qt-in-use/
同步發表於「紀老師程式教學網 YouTube 頻道」: https://goo.gl/AB3Lg4
喜歡看影片的朋友歡迎訂閱!