作者costbook (antitheist)
看板Visual_Basic
标题Re: [.NET] 有没有详细讲VB 2005 OOP部分的书?
时间Sun Nov 5 14:28:30 2006
1F:→ fumizuki:我知道没有type了,我不懂的是相同的效果如何达成
VB6的type我只知道意思,没实际用过,以下有错请指教
如过要在.NET达到相同的功能,可以用class和运算子多载完成,
虽然意义上不太相同,但是功能上应该ok吧
例如VB6的type制造一个complex type:
Type Complex
r As Double
i As Double
End Type
在.NET中可以建立一个complex class:
Class Complex
Public real As Integer
Public imaginary As Integer
End Class
然後你可以把Complex当成一个新的type来用:
Dim num,num2 As Complex
num.real=4
num.imaginary=3
...
如果要让Complex能和一般的资料型别一样可以值接运算,
而不是 num.real+num2.real这样,可以在class用
运算子多载:
Class Complex
Public real As Integer
Public imaginary As Integer
'+的运算子多载
Public Shared Operator +(ByVal c1 As Complex,ByVal c2 As Complex) As Complex
Return New Complex(c1.real + c2.real, c1.imaginary + c2.imaginary)
End Operator
'这是Complex的建构子
Public Sub New(ByVal real As Integer, ByVal imaginary As Integer)
Me.real = real
Me.imaginary = imaginary
End Sub
End Class
这样两个Complex物件就可以直接相加:num1+num2
差不多就是这样吧....
不过以上的写法会有很多问题,而且一些class的东西没有
全部写出来,详细的资料就要看.NET/2005的书了
--
树大有枯枝,人多有白痴
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.122.199
2F:推 commiserate:可以用 Structure 宣告以前VB6的 type 11/06 09:02