[.NET] 超新手-程式碼的排版方式的意義

看板Visual_Basic作者 ( 都好都可以~)時間11年前 (2013/08/21 13:52), 編輯推噓1(1039)
留言40則, 4人參與, 最新討論串1/1
各位前輩好,小弟是看書自學的超新手,非資訊相關的學生 所以有個很基本的問題想要請教一下(應該是太基本了,書本連題都不提....) 就是關於程式碼的排版方式隱含的意義 以下是我照書本練習的結果 Public Class Form1 Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click Me.Text = "表單Click事件測試" Me.BackColor = Color.Green End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.Text = "表單Load事件測試..." Me.WindowState = FormWindowState.Maximized End Sub Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles MyBase.Activated Me.Text = "表單Activated事件測試..." Me.BackColor = Color.Orange End Sub End Class 這裡是我的問題 1.每句statement前的抬頭空白是用來給閱讀者方便檢視用的,並不會影響執行的結果 因為執行的最小單位是"一句statement" 2.Keyword的第一個字母一定要大寫嗎? 我想測試看看,但是每次我試著改成小寫時,IDE都會自動幫我改回大寫... 3.每個Private Sub在排版上的先後順序不會影響執行結果,排版一樣是為了方便檢視 ex:我的Click事件放在Activated之前不會有問題 4.Public Class Form1之後一定要空一行才能開始寫其它的程式碼嗎? 5.句子裡,( ) _ , . ' " + - * / 前後多了或少了空格會不會造成錯誤 ex: Me.Text = ".........." Me . Text="......" 6.Load事件根本看不到啊...書裡說會看到的 謝謝各位的閱讀 ^ ^ 另外還有點我不知道怎麼問的問題 IDE輔助下寫出的程式碼: Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click 書本上的程式碼: Private Sub Form1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Me.Click 兩者執行結果一樣 但是為什麼少了ByVal跟System,這些是? 我爬一下文只知道sender跟e是所謂的KeyPress事件..但是還是搞不清楚 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.4.51

08/21 15:40, , 1F
依照個人認知回答,有錯請糾正
08/21 15:40, 1F

08/21 15:40, , 2F
1.每篇code執行前都會經過compile,現在的長相只是讓
08/21 15:40, 2F

08/21 15:41, , 3F
工程師好辨認而已,空白只是VS內的GUI相關設定
08/21 15:41, 3F

08/21 15:42, , 4F
實際上在compile的時候不會管你那些,所以沒差
08/21 15:42, 4F

08/21 15:42, , 5F
2.如果你說的是"保留字",那個也是VS內的設定,至於差
08/21 15:42, 5F

08/21 15:43, , 6F
異同1,只是讓VS在Compile時辨認,至於自己的變數就
08/21 15:43, 6F

08/21 15:44, , 7F
可以依照喜好大小寫,並且會根據Dim時的版本統一
08/21 15:44, 7F

08/21 15:44, , 8F
3.原則上不會有問題,他是整篇讀完才開始執行的
08/21 15:44, 8F

08/21 15:45, , 9F
4.沒試過,不過也不清楚為什麼非得要弄成一行不可
08/21 15:45, 9F

08/21 15:46, , 10F
5.基本上不會,因為他會幫你修正,但是有些類似保留字
08/21 15:46, 10F

08/21 15:46, , 11F
如Else,If 跟ElseIf,如果有空白他會傻傻分不清
08/21 15:46, 11F

08/21 15:47, , 12F
6.Load事件是程式開始前的初始值宣告,以第二行max來
08/21 15:47, 12F

08/21 15:47, , 13F
說,你會看到他直接最大化執行而非執行後才最大化
08/21 15:47, 13F

08/21 15:48, , 14F
相同的,在這個時間點之內,也許textbox尚未實體化
08/21 15:48, 14F

08/21 15:48, , 15F
所以修改text值無效,改成Msgbox應該可以看到
08/21 15:48, 15F

08/21 15:48, , 16F
總之,寫code不是寫自己的code而是Compiler懂的code
08/21 15:48, 16F

08/21 15:49, , 17F
講英文也要講別人聽得懂的語法,所以既然寫.net那也只
08/21 15:49, 17F

08/21 15:49, , 18F
能說VS說了算,排板什麼的都是浮雲,他說你錯你也沒轍
08/21 15:49, 18F

08/21 15:52, , 19F
P.S.不對...想到自己寫的Code,6的部分應該看得到才對
08/21 15:52, 19F

08/21 16:05, , 20F
1:不會 2:VB關鍵字沒有casing 你覺得IDE很煩可以關掉
08/21 16:05, 20F

08/21 16:06, , 21F
3: 每個sub之間沒有相依關係 可以隨便放
08/21 16:06, 21F

08/21 16:07, , 22F
4: 不用 5: 不會 6: 去上面選單選。
08/21 16:07, 22F

08/21 16:08, , 23F
Else If 和 ElseIf 在semantics上根本是兩回事好嗎
08/21 16:08, 23F

08/21 16:09, , 24F
他設計不把這兩個視為相同 就是不同 不是空不空格的問題
08/21 16:09, 24F

08/22 21:14, , 25F
謝謝兩位盡力為小弟解答,謝謝!!
08/22 21:14, 25F

08/22 22:00, , 26F
空行 空白 TAB定位 全部會被編譯器忽略
08/22 22:00, 26F

08/22 22:03, , 27F
關鍵字 保留字 變數 常數 不區分大小寫
08/22 22:03, 27F

08/22 22:03, , 28F
IDE為了程式的可讀性,會一律改成相同的大小寫
08/22 22:03, 28F

08/22 22:06, , 29F
每個函式 屬性 欄位..都會是類別的一個成員 先後順序沒差
08/22 22:06, 29F

08/22 22:08, , 30F
物件名稱.屬性 = 值 依據規則 小數點前後是不可以有空白
08/22 22:08, 30F

08/22 22:12, , 31F
Load之後又執行了activated,把text的值改變了
08/22 22:12, 31F

08/22 22:12, , 32F
你想要看到什麼?
08/22 22:12, 32F

08/22 22:15, , 33F
.vb檔案開頭有 Import System 或者專案屬性中有匯入
08/22 22:15, 33F

08/22 22:15, , 34F
程式中就可以省略 System
08/22 22:15, 34F

08/22 22:16, , 35F
byval 是表示這個參數使用傳值呼叫,也是預設值,可省略
08/22 22:16, 35F

08/23 01:16, , 36F
感謝板主指點 :D
08/23 01:16, 36F

08/23 15:37, , 37F
感謝指點!!
08/23 15:37, 37F

08/23 15:39, , 38F
load又執行acticated照書上範例,我覺得這樣是看不到,但是書
08/23 15:39, 38F

08/23 15:41, , 39F
上這樣教讓我很懷疑...看來我的懷疑是對的
08/23 15:41, 39F

08/23 15:41, , 40F
還是要謝謝版主跟兩位前輩的幫忙 ^_^~
08/23 15:41, 40F
文章代碼(AID): #1I55MFxX (Visual_Basic)
文章代碼(AID): #1I55MFxX (Visual_Basic)