作者yuster ( 都好都可以~)
看板Visual_Basic
標題[.NET] 超新手-程式碼的排版方式的意義
時間Wed Aug 21 13:52:12 2013
各位前輩好,小弟是看書自學的超新手,非資訊相關的學生
所以有個很基本的問題想要請教一下(應該是太基本了,書本連題都不提....)
就是關於程式碼的排版方式隱含的意義
以下是我照書本練習的結果
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
1F:→ KawasumiMai:依照個人認知回答,有錯請糾正 08/21 15:40
2F:→ KawasumiMai:1.每篇code執行前都會經過compile,現在的長相只是讓 08/21 15:40
3F:→ KawasumiMai: 工程師好辨認而已,空白只是VS內的GUI相關設定 08/21 15:41
4F:→ KawasumiMai: 實際上在compile的時候不會管你那些,所以沒差 08/21 15:42
5F:→ KawasumiMai:2.如果你說的是"保留字",那個也是VS內的設定,至於差 08/21 15:42
6F:→ KawasumiMai: 異同1,只是讓VS在Compile時辨認,至於自己的變數就 08/21 15:43
7F:→ KawasumiMai: 可以依照喜好大小寫,並且會根據Dim時的版本統一 08/21 15:44
8F:→ KawasumiMai:3.原則上不會有問題,他是整篇讀完才開始執行的 08/21 15:44
9F:→ KawasumiMai:4.沒試過,不過也不清楚為什麼非得要弄成一行不可 08/21 15:45
10F:→ KawasumiMai:5.基本上不會,因為他會幫你修正,但是有些類似保留字 08/21 15:46
11F:→ KawasumiMai: 如Else,If 跟ElseIf,如果有空白他會傻傻分不清 08/21 15:46
12F:→ KawasumiMai:6.Load事件是程式開始前的初始值宣告,以第二行max來 08/21 15:47
13F:→ KawasumiMai: 說,你會看到他直接最大化執行而非執行後才最大化 08/21 15:47
14F:→ KawasumiMai: 相同的,在這個時間點之內,也許textbox尚未實體化 08/21 15:48
15F:→ KawasumiMai: 所以修改text值無效,改成Msgbox應該可以看到 08/21 15:48
16F:→ KawasumiMai:總之,寫code不是寫自己的code而是Compiler懂的code 08/21 15:48
17F:→ KawasumiMai:講英文也要講別人聽得懂的語法,所以既然寫.net那也只 08/21 15:49
18F:→ KawasumiMai:能說VS說了算,排板什麼的都是浮雲,他說你錯你也沒轍 08/21 15:49
19F:→ KawasumiMai:P.S.不對...想到自己寫的Code,6的部分應該看得到才對 08/21 15:52
20F:→ MOONRAKER:1:不會 2:VB關鍵字沒有casing 你覺得IDE很煩可以關掉 08/21 16:05
21F:→ MOONRAKER:3: 每個sub之間沒有相依關係 可以隨便放 08/21 16:06
22F:→ MOONRAKER:4: 不用 5: 不會 6: 去上面選單選。 08/21 16:07
23F:→ MOONRAKER:Else If 和 ElseIf 在semantics上根本是兩回事好嗎 08/21 16:08
24F:→ MOONRAKER:他設計不把這兩個視為相同 就是不同 不是空不空格的問題 08/21 16:09
25F:→ yuster:謝謝兩位盡力為小弟解答,謝謝!! 08/22 21:14
26F:推 fumizuki:空行 空白 TAB定位 全部會被編譯器忽略 08/22 22:00
27F:→ fumizuki:關鍵字 保留字 變數 常數 不區分大小寫 08/22 22:03
28F:→ fumizuki:IDE為了程式的可讀性,會一律改成相同的大小寫 08/22 22:03
29F:→ fumizuki:每個函式 屬性 欄位..都會是類別的一個成員 先後順序沒差 08/22 22:06
30F:→ fumizuki:物件名稱.屬性 = 值 依據規則 小數點前後是不可以有空白 08/22 22:08
31F:→ fumizuki:Load之後又執行了activated,把text的值改變了 08/22 22:12
32F:→ fumizuki:你想要看到什麼? 08/22 22:12
33F:→ fumizuki:.vb檔案開頭有 Import System 或者專案屬性中有匯入 08/22 22:15
34F:→ fumizuki:程式中就可以省略 System 08/22 22:15
35F:→ fumizuki:byval 是表示這個參數使用傳值呼叫,也是預設值,可省略 08/22 22:16
36F:→ MOONRAKER:感謝板主指點 :D 08/23 01:16
37F:→ yuster:感謝指點!! 08/23 15:37
38F:→ yuster:load又執行acticated照書上範例,我覺得這樣是看不到,但是書 08/23 15:39
39F:→ yuster:上這樣教讓我很懷疑...看來我的懷疑是對的 08/23 15:41
40F:→ yuster:還是要謝謝版主跟兩位前輩的幫忙 ^_^~ 08/23 15:41