作者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)
1F:→ humanfly:因为VB.NET不传参数 有()跟没()是一样的,C#就一定要加() 03/25 12:16
2F:推 mraaa:你的问题好多点....可否标清楚呢??好乱...... 03/25 14:43