作者kucom (kucom)
看板Visual_Basic
標題[.NET] vb.net中的方法與函式
時間Wed Mar 25 11:41:39 2009
大家好,想請問一個觀念上的問題,因為剛學.net,所以有很多問題想釐清
vb.net中的方法與函式各是什麼意思?這二個是一樣的東西嗎? 方法=函式?
類別中定義屬性,方法,變數,事件等...
可以用物件new出來執行,
所以物件引用類別的成員(如方法)的方式為:物件.方法名稱()
如: Public Class Person
Private mNme as string
Private mTotalDistance as integer
Public sub walk(ByVal distance as integer)
mTotalDistance+=distance
End Sub
End Class
故 Dim myPerson as New Person()
myPerson.Walk(12)
類別中的方法可以用sub,function來寫,
物件用 物件.sub名稱(),物件.function名稱() 宣告
那函式如果是指方法的話,宣告方式應該是要用 物件.函式名()
為什麼一些內建函式,如數值函式,字串類別...要呼叫所屬函式的方式不一致呢?
例如: 字串類別 System.String
dim str1 as string="123456"
dim str2 as string
str1=str2.Remove(2,3) -->str2字串物件變數去呼叫
system.string類別中的Remove函式(方法)
數值函式
n1,n2為數值變數
n1=Fix(n2) -->為什麼要呼叫Fix函式的方式不是 物件.Fix()?
該如何解釋呢?
所以函式是不是等於類別中的方法?那為什麼呼叫方式不一樣呢?
另外常看到物件宣告的方式有二種
1. Dim objtest as new classtest()
2. Dim objtest as new classtest
第一種是objtest物件依classtest類別촬
classtest是類別是很確定的嗎? 是類別方話,都會有()嗎?
第二種的宣告方式也是objtest物件依classtest類別產生的意思嗎?意義同第一種?
或是第二種的classtest不是類別,而是其他東西,如結構...
那為什麼Random是類別,可是他的產生方式卻是 Dim r as new Random
為什麼不宣告成 Dim r as new Random() ?
還有....system.string基本類別中有 length這個方法,
為什麼引用他的方式是 n=str1.length 而不是 n=str1.length() ?
請大家幫我解決 ...現在一頭亂啊XD
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.50.48
※ 編輯: kucom 來自: 59.104.50.48 (03/25 11:42)
→ humanfly:因為VB.NET不傳參數 有()跟沒()是一樣的,C#就一定要加() 03/25 12:16
推 mraaa:你的問題好多點....可否標清楚呢??好亂...... 03/25 14:43