请教一下,function可以返回一个类对象吗
vb吧
全部回复
仅看楼主
level 1
维天-有汉 楼主
好比类是point,然后function的返回对象也可以是point吗,今天在function中是定义了一个点p1 as point,通过运算后对p1的属性都赋值了,然后想把p1返回出去,发现出错,是不是vb中function的返回类型只能是整形,字符等基本变量,不可以是自定义类对象
2022年10月01日 16点10分 1
level 1
维天-有汉 楼主
有人吗
2022年10月02日 01点10分 2
level 15
函数类型当然可以是对象
对象赋值应该用Set,比如函数名为Fun,则返回值的语句就是Set Fun=p1
2022年10月02日 02点10分 3
好的,太感谢了,多谢赐教,再次感谢
2022年10月02日 03点10分
再请问一个可以吗,就是一个对象的方法可以调用对象自身的吗,好比两直线产生一个交点,好比line1.jiaodian(line2),返回一个点,但是计算交点肯定需要line1和line2两个对象,但是我不想参数里面写两个变量看着啰嗦,只想着一个line2,请问可以调用对象自身吗,
2022年10月02日 03点10分
@维天-有汉 类模块里要使用自己时,用Me关键字
2022年10月02日 03点10分
@初音✨七奈 直接是me表示自身对象吗。好比是写一个函数通过3个点计算余弦值,p1.cosin(p2,p3),这里面肯定涉及到p1和和其余两个点长度的计算,我想直接调用p1和其余两点计算,p1就是用me代替可以了吗,电脑在旁边我可以直接试一下,但是刚好出门
2022年10月02日 03点10分
level 13
Private Sub Form_Load()
Dim ico As IPictureDisp
SetPic ico
End Sub
Private Sub SetPic(p1 As StdPicture) '这里的参数不是ByVal传值,是ByRef传址,可以适用这各类型(Long、自定义结构、对象等)
Set p1 = Me.Icon
End Sub
'以上是在参数中返回,也可以Function的返回值返回
Private Function SetPic2() As StdPicture
Set SetPic2 = Me.Icon
End Function
用sub还是function,看需要,怎么方便怎么来
2022年10月02日 02点10分 4
多谢多谢,解决了初学者的大问题,再次感谢
2022年10月02日 03点10分
再请教一个问题,就是一个对象的方法可以调用对象自身的吗,好比两直线产生一个交点,好比line1.jiaodian(line2),返回一个点,但是计算交点肯定需要line1和line2两个对象,但是我不想参数里面写两个变量看着啰嗦,只想着一个line2,请问方法可以调用对象自身吗,也就是line1
2022年10月02日 03点10分
level 13
关键字着色后看起来容易理解,截图
2022年10月02日 02点10分 5
不好意思,再请教一个问题,类中可以用数组属性吗,好比定义了一个线段的类,其中有一个属性是数组,想把两个端点放在一个数组里面(p1,p2),然后用property的let方法给这个数组赋值两个点,get方法直接读取这个数组,这些可以吗,试了几个小时都不对
2022年10月02日 13点10分
@维天-有汉 当然可以
2022年10月02日 15点10分
刚才回复的被系统删了
2022年10月02日 15点10分
@维天-有汉 老师你刚才回复我的被系统删了
2022年10月02日 15点10分
level 13
参考,是不是符合你的
2022年10月02日 15点10分 7
属性要返回结构在类中要用到Friend关键字,这个可能是初学者不知道的
2022年10月02日 15点10分
level 15
Private mProp() As Object
Property Get Prop(Index As Long) As Object
Set Prop = mProp(Index)
End Property
Property Set Prop(Index As Long, Value As Object)
Set mProp(Index) = Value
End Property
大概就像这样吧,需要说明的是,如果使用属性数组,那么一次只能访问一个数组元素,想要一次性得到整个数组,应该还是要写方法来实现的
2022年10月03日 03点10分 8
老师,你的意思就是说写入这个数组也只能一次一个吗,像这样 obj.prop(0,obj0) obj.prop(1,obj1) 不能同时写入两个吗,像这样 obj.(obj0,obj1) 然后在properpty set过程里面让mprop(0)=obj0,mprop(1)=obj1,或者在过程里面定义一个临时数组,把obj0,obj1赋给这个临时数组,再把这个临时数组赋给mprop
2022年10月03日 03点10分
@维天-有汉 你好像对属性有什么误解,像你这种需求用方法实现比较合理
2022年10月03日 03点10分
@初音✨七奈 抱歉抱歉,初学者,许多不太了解
2022年10月03日 03点10分
老师,因为读取过程用的property get,写入过程用sub,那只能用不同的方法名,我想写入和读取都用prop
2022年10月03日 03点10分
1