伊莉討論區

標題: 個人的寫程式小技巧 [打印本頁]

作者: tryit244178    時間: 2016-12-3 10:16 AM     標題: 個人的寫程式小技巧

本帖最後由 tryit244178 於 2016-12-5 11:00 PM 編輯

想要漂亮的原始碼,除了有意義的變數宣告外
提供一下我個人寫程式的小技巧
讓有興趣的人參考參考

=====================================

模組化你的程式碼!
看看下面的程式碼…
  1. Sub TestA()
  2.         Text1.Text = "TestA"
  3.         Button1.Enabled = False
  4.         i = 1
  5. End Sub

  6. Sub TestB()
  7.         Text1.Text = "TestB"
  8.         Button1.Enabled = True
  9.         i = 1
  10. End Sub
  11.         .
  12.         .
  13.         .
複製代碼

仔細一看,內容都是類似的!
寫個副程式,把它們包裝起來吧!
  1. Sub Test(ByVal strValue As String, ByVal blnValue As Boolean)
  2.         Text1.Text = strValue
  3.         Button1.Enabled = blnValue
  4.         i = 1
  5. End Sub
複製代碼

=====================================

用函數來傳回布林值!
臨時想不出例子,總之很好用!!
  1. Function CheckState() As Boolean
  2.         [程序]
  3.         Return True
  4. End Fucntion

  5. If CheckState = True Then
  6.         [程序]
  7. End If
複製代碼

=====================================

假設有個整數變數 i ,它會記錄執行後的結果
我們會用它記錄的結果來執行程序
  1. If i = 1 Then
  2.    [程序]
  3. End If

  4. If i = 2 Then
  5.    [程序]
  6. End If

  7.         .
  8.         .
  9.         .
複製代碼

或是
  1. If i = 1 Then
  2.    [程序]
  3. ElseIf i = 2 Then
  4.    [程序]
  5. ElseIf i = 3 Then
  6.         .
  7.         .
  8.         .
  9. End If
複製代碼

比起用If一行一行判斷,改用Select Case吧!
  1. Select Case i
  2.         Case 1
  3.                 [程序]
  4.         Case 2
  5.                 [程序]
  6.         .
  7.         .
  8.         .
  9. End Select
複製代碼

=====================================

寫個從1加到10的程式碼
  1. Dim intCount As Integer = 0

  2. For i As Integer = 1 To 10
  3.         intCount += i
  4. Next
複製代碼

有個自已呼叫自已的方法,叫做遞迴!(這個有好有壞,但很華麗XD)
  1. Function Count(ByVal intValue As Integer) As Integer
  2.         If intValue = 0 Then Exit Function
  3.         Return intValue + Count(intValue - 1)
  4. End Function

  5. '傳回55
  6. Debug.Print(Count(10))
複製代碼

=====================================
其他的還沒想到,歡迎補充





作者: jerick    時間: 2016-12-5 10:07 AM

遞迴是很好用,
不過用的時候要小心一點,
初學者很容易不小心跳不出來。
作者: dashixiong168    時間: 2017-1-7 10:37 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: johnwanz    時間: 2017-1-16 09:28 AM

前面的例子, 可以簡單彙整成幾個條列,
* Duplicated code (重構-壞味道)
* 避免直接存取變量, 如:OO常見get/set
* 狀態機處理模式


網上很多編程原則可以參考, 像是,
* SOLID
* 重構書中所提的壞味道
* 編碼風格
  (各公司組織, 語法, 甚至於各個專案, 都可以定義; 重點在一個專案中應該一致)

每個步驟都不是很特別, 都是很常見的語法, 差別只在於, 願不願意去用; 以及是否會去思考, 用與不用的差別.
因為不是全部都用就比較好; 會帶來某些優勢的作法, 也會伴隨某些代價, 要知道如何取捨.
作者: zxc693491    時間: 2017-3-23 01:18 AM

本帖最後由 zxc693491 於 2017-3-23 01:19 AM 編輯

我認為初學先多看看別人寫的,並去理解會比較好上手
畢竟人類一開始都是靠著模仿成長的,成熟了自然會獨立
舉自己當例子,排列一直是程式設計很重要的一個概念
C=A:A=B:B=C,如此交換A與B值等基礎我花了很多時間在記熟如何寫出這樣的迴圈,像是氣泡排序法之類的,
但用多了發現,實務上死背這些似乎沒有幫助,應該多試試看自己的想法,搞懂了再去用這些編好的模組,像我在排列時會直接寫個簡單的陣列全部存進去,用內建的函數讓他自己排序,雖然在實際上是多此一舉,但編寫的時候自己可以更快去處理,也減少bug的產生,當然對於龐大的程式不適合如此就是了。
總之,先懂基礎,再套模組,才會進步。
以上個人見解,還望版上高人指教
作者: 黑輪兄    時間: 2018-4-6 09:45 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: funinthesun    時間: 2018-5-26 08:43 PM

其實我才剛學VB所以有很多會看但不會寫,這篇文章給了我許多啟發
作者: zaq12345    時間: 2020-4-5 11:42 PM

謝謝大大的分享..大大辛苦了
作者: erick883    時間: 2022-4-2 04:08 PM

長知識了,感謝分享~~~
作者: qoo460    時間: 2022-12-7 11:04 PM

感謝版大的分享!謝謝~~~~




歡迎光臨 伊莉討論區 (http://a04.eyny.com/) Powered by Discuz!