查看完整版本: 個人的寫程式小技巧
頁: [1]

tryit244178 發表於 2016-12-3 10:16 AM

個人的寫程式小技巧

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

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

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

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

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

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

If CheckState = True Then
        [程序]
End If
=====================================

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

If i = 2 Then
   [程序]
End If

        .
        .
        .
或是
If i = 1 Then
   [程序]
ElseIf i = 2 Then
   [程序]
ElseIf i = 3 Then
        .
        .
        .
End If
比起用If一行一行判斷,改用Select Case吧!
Select Case i
        Case 1
                [程序]
        Case 2
                [程序]
        .
        .
        .
End Select
=====================================

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

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

'傳回55
Debug.Print(Count(10))
=====================================
其他的還沒想到,歡迎補充




...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

jerick 發表於 2016-12-5 10:07 AM

遞迴是很好用,
不過用的時候要小心一點,
初學者很容易不小心跳不出來。

dashixiong168 發表於 2017-1-7 10:37 PM

{:45:} 看起來還不錯用!! 又學到了新用法,感謝分享!

johnwanz 發表於 2017-1-16 09:28 AM

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


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

每個步驟都不是很特別, 都是很常見的語法, 差別只在於, 願不願意去用; 以及是否會去思考, 用與不用的差別.
因為不是全部都用就比較好; 會帶來某些優勢的作法, 也會伴隨某些代價, 要知道如何取捨....<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

zxc693491 發表於 2017-3-23 01:18 AM

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

我認為初學先多看看別人寫的,並去理解會比較好上手
畢竟人類一開始都是靠著模仿成長的,成熟了自然會獨立
舉自己當例子,排列一直是程式設計很重要的一個概念
C=A:A=B:B=C,如此交換A與B值等基礎我花了很多時間在記熟如何寫出這樣的迴圈,像是氣泡排序法之類的,
但用多了發現,實務上死背這些似乎沒有幫助,應該多試試看自己的想法,搞懂了再去用這些編好的模組,像我在排列時會直接寫個簡單的陣列全部存進去,用內建的函數讓他自己排序,雖然在實際上是多此一舉,但編寫的時候自己可以更快去處理,也減少bug的產生,當然對於龐大的程式不適合如此就是了。
總之,先懂基礎,再套模組,才會進步。
以上個人見解,還望版上高人指教...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

黑輪兄 發表於 2018-4-6 09:45 PM

這東西很好用耶,讓我的程度又成長許多

funinthesun 發表於 2018-5-26 08:43 PM

其實我才剛學VB所以有很多會看但不會寫,這篇文章給了我許多啟發{:16:}

zaq12345 發表於 2020-4-5 11:42 PM

謝謝大大的分享..大大辛苦了

erick883 發表於 2022-4-2 04:08 PM

長知識了,感謝分享~~~

qoo460 發表於 2022-12-7 11:04 PM

感謝版大的分享!謝謝~~~~<br><br><br><br><br><div></div>
頁: [1]