台灣最大程式設計社群網站
線上人數
1490
 
會員總數:242949
討論主題:187843
歡迎您免費加入會員
討論區列表 >> VB.NET >> [請問] 請問VB.Net 的 new 一問
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[請問] 請問VB.Net 的 new 一問
價值 : 10 QP  點閱數:4476 回應數:3

樓主

Simon
門外漢
0 1
18 0
發送站內信

請問 哪些時機要用到new 例如
設定文字中想要射程超連結的範圍 LinkLabel1.LinkArea = New LinkArea(0, 2) << 加上New 而
設定LinkLabel1的超連結樣是 LinkLabel1.LinkBehavior = LinkBehavior.AlwaysUnderline << 不用加上New 請問 New 使用的時機 是什麼時候 為什麼有些要加 有些不用呢?

本篇文章發表於2010-04-01 09:25
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

leoqrs
捐贈 VP 給 leoqrs 檢舉此回應
new 顧名思義,就是[新建]

當你沒有適當的值可以丟入變數,又不願意讓他為null或空值

就可以用new將相關的格式輸入進去,此時雖然這個變數還是一樣裡面沒有東西

但是,卻有所謂的格式

舉個例子,當你在程式裡指定某個重要變數,卻沒有為他輸入值或建立格式(並且這個變數也沒有自動帶入預設值)

當你使用時也沒有輸入值而是直接使用,這時程式會告訴你出現錯誤,你將對null物件做編輯

回到你所提出的問題

LinkLabel1.LinkArea = New LinkArea(0, 2)

這句程式之所以要用new是因為你要自設連結範圍

可是你沒辦法純手工的把連結範圍的格式寫出來

這時,就要用new新建一個連結範圍格式出來

本篇文章回覆於2010-04-01 10:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

史努比
檢舉此回應
需不需要加NEW, 要視即將被指派的屬性或是變數是[值型別]還是[參考型別]

被定義成[值型別]或是[Structure]或是[ENUM]的屬性, 修改時可以不用加NEW

如:
Me.Name = "ASDF" 'string型別
Me.Age = 12 'integer 型別
Me.Sex = Enum_SexType.Male 'enum 列舉常數型別

被定義成[參考型別]的變數或屬性, 在指派的時候, 就需要多加一個NEW

參考型別變數或屬性被宣告的時候, 並沒有任何實體存在,

加了NEW之後, 就會呼叫該類別(Class)的建構子(SUB NEW), 建立一個新的實體

如:

Dim F AS Form1
F.Show()

Dim F AS Form1 = New Form1
F.Show()

上面二段程式看起來很像, 差別只在第一行有沒有NEW出來

第一段的結果會出錯, 因為F只是被定義了型別為Form1, 但是還沒擁有真正實體

所以F.SHOW()被呼叫的時候, 會發生NullException

第二段則不會發生錯誤, 因為NEW的關係, F已經擁有真正的實體存在
本篇文章回覆於2010-04-01 11:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

黑熊
檢舉此回應
實質型別與參考型別

雖然是八年後的回應,但還是放個影片連結,讓之後搜尋相關主題的人可以有更廣泛地了解
本篇文章回覆於2018-03-30 21:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.