台灣最大程式設計社群網站
線上人數
493
 
會員總數:246044
討論主題:189631
歡迎您免費加入會員
討論區列表 >> VB.NET >> 如何決定變數該設定為屬性還是參數?
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何決定變數該設定為屬性還是參數?
價值 : 40 QP  點閱數:1021 回應數:16
樓主

city
初學者
230 43
1735 231
發送站內信

請問各位前輩們:

以下有3種方法
3種方法的結果一樣 意義可能不一樣

第一種方法:
將變數設定為屬性

第二種方法:
將變數設定為參數(Byval值)

第三種方法:
將部分變數設定為屬性 部分變數設定為參數

我的問題是:
怎麼決定變數該當屬性還是參數?
(有什麼依據或原則?)

謝謝~~







搜尋相關Tags的文章: [ VB.NET ] , [ 變數 ] , [ 屬性 ] , [ 參數 ] ,
本篇文章發表於2017-10-19 20:46
1樓
回應

誰是誰
檢舉此回應
先問一個問題,你知道屬性是甚麼嗎 ?
本篇文章回覆於2017-10-19 21:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

city
檢舉此回應
To:誰是誰

應該是物件的特性(特徵)
本篇文章回覆於2017-10-19 21:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

誰是誰
檢舉此回應
所以 "事件" 不算是物件的特性 ?
本篇文章回覆於2017-10-19 21:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

city
檢舉此回應
To:誰是誰

物件包含了屬性 方法 事件

事件應該也算是該物件的特性(應該算是動詞)

不過屬性跟事件應該是不同的
(屬性:名詞)
(事件:動詞)
本篇文章回覆於2017-10-19 21:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

誰是誰
檢舉此回應
所以,我建議你先研究一下 "屬性究竟真的是甚麼" ,那你這個問題的答案就出現了。

本篇文章回覆於2017-10-19 21:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

city
檢舉此回應
如果屬性是有意義的要表達物件的特性

那Byval值的意義是什麼?
只是為了提供函式所需要的參數?
本篇文章回覆於2017-10-19 22:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

city
檢舉此回應
有個疑問:

屬性一定要是有意義的嗎?

如果函式的參數(Byval值)太多了
(比如說有15個參數)

不能把參數寫成屬性嗎?

這樣雖然不太符合屬性的定義
但是函式就可以不用輸入那麼多參數
(函式一個參數都不用輸入)

而且運算的結果也會是正確的
(但是會有另一個問題:使用者有可能會漏打了某個屬性)

不過這15個屬性算是垃圾屬性
因為沒什麼意義
只是為了傳值給函式
本篇文章回覆於2017-10-19 23:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

誰是誰
檢舉此回應
好問題,當然可以沒意義。
同樣結果的程式碼,可以寫得一團亂,也可以寫得很優雅。
寫程式的人可以決定自己要走的路。
本篇文章回覆於2017-10-20 00:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

Daimom
捐贈 VP 給 Daimom 檢舉此回應
參數太多改傳class



本篇文章回覆於2017-10-20 08:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

city
檢舉此回應
To:誰是誰

大大在3樓有提到"事件"
不知道大大提到事件的用意為何?


其實我很少用到事件
就算寫了幾十個小程式 也沒用過事件(Event)
可能都是用程序導向在寫
都是寫在元件的區域範圍內(像是:Button1_Click裡面)
算是微軟幫忙寫好的事件...

現在練習寫Class 不過也還沒真正用到事件
頂多是照著參考書練習一下而已...
本篇文章回覆於2017-10-20 16:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

city
檢舉此回應
To:Daimom

有點不太懂大大說的...

大大說的是Class1呼叫自己?
還是Class2呼叫Class1?






本篇文章回覆於2017-10-20 17:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

city
檢舉此回應
說到了垃圾屬性...

示範一個案例:
這個案例是[開啟資料夾]

開啟資料夾需要一個變數(資料夾的路徑)
而這個變數 究竟該當成屬性 還是參數(Byval值)

若當成屬性:




這個s屬性是否該算是垃圾屬性?
因為它用不到

這個Class也可以簡化成:
(把變數當成參數)





可是如果今天要用到s屬性
如下:





s屬性似乎又變成了一個必要的屬性
似乎又變成了不是垃圾屬性...


所以...參數s究竟該變成屬性 還是參數(Byval值)
似乎是有點難拿捏...
本篇文章回覆於2017-10-20 17:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
不錯的參考

小魚
檢舉此回應
Button1_Click就是事件啊,
我覺得不要一直鑽牛角尖在這些名詞上面,
先做一個實際會用到的程式吧。
本篇文章回覆於2017-10-22 10:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

誰是誰
檢舉此回應
Button1_Click(object sender, .....) 這個叫 "方法 (Method)" 不叫 "事件 (Event)"

事件和委派給事件的方法是兩個東西。
本篇文章回覆於2017-10-23 05:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

city
檢舉此回應
To:小魚

目前是把以前程序導向的東西嘗試用Class寫+看書

提問的範例都是簡化過 比較容易看得懂 : )
本篇文章回覆於2017-10-23 15:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

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