none
屬性設定的概念 RRS feed

  • 問題

  • 一般在進行屬性設定,語法是「控制項.屬性項=屬性值」。

    請問,有許多時候必須使用「控制項.屬性項=new 屬性項(xxx, xxx, xxx)」來設定屬性,這是為什麼?是不是因為該屬性為集合型別,需要集體宣告,那為何要用New關鍵字。

     

    謝謝。

     

    2007年5月12日 上午 01:45

解答

  • 這其實不一定的,要看元件設計者當時的安排如何 .

     

    像是 Web Control 的建構式就沒有設定屬性的方法,例如: 

    Code Snippet

    Dim button As Button = New Button

    Dim label As Label = New Label

     

    但有一些是會併含屬性設定的: 

    Code Snippet

    Dim sqlconn As SqlConnection = New SqlConnection("...")

    Dim sqlcmd As SqlCommand = New SqlCommand("...", sqlconn)

     

    所以屬性設定的方法不是只有一種,但 object.property = value 這個方法是最常用的 .

     

    用 New 是因為要建構物件,而不是只有設定屬性而已 .

    2007年5月12日 上午 06:00
    版主
  • Hi,我想下面這篇可以一併參考看看,相信會有幫助的

    http://msdn.microsoft.com/library/cht/default.asp?url=/library/CHT/vbcn7/html/vaconusingnewkeyword.asp

    部分原文:

    若要建立類別的執行個體,請使用 New 關鍵字。不像 IntegerDouble 等數值型別,物件是屬於參考型別,必須在使用之前先明確建立。例如,請看下列兩行程式碼:

    Dim Button1 As System.Windows.Forms.Button

    Dim Button2 As New System.Windows.Forms.Button()

    第一個陳述式所宣告的物件變數可包含按鈕物件的參考。但除非您指派 Button 型別的物件至變數 Button1,否則此變數所包含的值都是 Nothing。第二個陳述式也定義了一個可以包含按鈕物件的變數,但 New 關鍵字建立按鈕物件並將其指派至變數 Button2

    由於表單和控制項實際上都是類別,因此您可以視需要使用 New 關鍵字來建立這些項目的新執行個體。

     

    2007年5月12日 上午 06:06
    版主

所有回覆

  • 這其實不一定的,要看元件設計者當時的安排如何 .

     

    像是 Web Control 的建構式就沒有設定屬性的方法,例如: 

    Code Snippet

    Dim button As Button = New Button

    Dim label As Label = New Label

     

    但有一些是會併含屬性設定的: 

    Code Snippet

    Dim sqlconn As SqlConnection = New SqlConnection("...")

    Dim sqlcmd As SqlCommand = New SqlCommand("...", sqlconn)

     

    所以屬性設定的方法不是只有一種,但 object.property = value 這個方法是最常用的 .

     

    用 New 是因為要建構物件,而不是只有設定屬性而已 .

    2007年5月12日 上午 06:00
    版主
  • Hi,我想下面這篇可以一併參考看看,相信會有幫助的

    http://msdn.microsoft.com/library/cht/default.asp?url=/library/CHT/vbcn7/html/vaconusingnewkeyword.asp

    部分原文:

    若要建立類別的執行個體,請使用 New 關鍵字。不像 IntegerDouble 等數值型別,物件是屬於參考型別,必須在使用之前先明確建立。例如,請看下列兩行程式碼:

    Dim Button1 As System.Windows.Forms.Button

    Dim Button2 As New System.Windows.Forms.Button()

    第一個陳述式所宣告的物件變數可包含按鈕物件的參考。但除非您指派 Button 型別的物件至變數 Button1,否則此變數所包含的值都是 Nothing。第二個陳述式也定義了一個可以包含按鈕物件的變數,但 New 關鍵字建立按鈕物件並將其指派至變數 Button2

    由於表單和控制項實際上都是類別,因此您可以視需要使用 New 關鍵字來建立這些項目的新執行個體。

     

    2007年5月12日 上午 06:06
    版主
  • 謝謝...
    2007年5月12日 上午 07:21