VB2005里面泛型的疑问(前沿探索 UP有分)

farrio 2005-03-30 05:28:06
我现在想做一个泛型比较操作,
Public Function GenericCompare(Of T)(ByVal x As T, ByVal y As t) As Boolean
函数里面肯定不能写成
Return x = y
因为.net会说“T类型没有定义等号操作”。
我写成
Return Equals(x, y)
就可以了。

---问题1---
但是由于这个Equals函数参数是Object,也就是说这个核心操作没有用到泛型,所以我感觉这个函数实际上和
Public Function OOPCompare(ByVal x As Object, ByVal y As Object) As Boolean
Return Equals(x, y)
End Function
是完全一样的。泛型的作用几乎没有体现出来。

如果我把泛型函数修改成
Public Function GenericCompare(Of T As System.IComparable(Of T))(ByVal x As T, ByVal y As T) As Boolean
Return x.Equals(y)
End Function
就没有问题了。

---问题2---
这样使用是不是就完全用上了泛型的东西而脱离了OOP呢?

---问题3---
泛型的约束我看过一点,但是这样用约束对么?我记得约束都是来自某个类或者接口,这样的泛型接口约束是否是正确的呢?特别是
Of T As System.IComparable(Of T)
感觉有点循环声明的感觉。有点吃不准。
...全文
210 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhang001 2005-04-08
  • 打赏
  • 举报
回复
ding
sg163 2005-04-06
  • 打赏
  • 举报
回复
2005出来了吗?和2003有什么大的改变啊?没用过不懂。
  • 打赏
  • 举报
回复
还没有用过2005
lijunming008 2005-04-06
  • 打赏
  • 举报
回复
up
unidw 2005-04-06
  • 打赏
  • 举报
回复
只好帮你顶了~!
ynnwq 2005-04-06
  • 打赏
  • 举报
回复
VB.NET不大懂,不过觉得范型约束倒真是个好东东,应该不会对OO有什么影响吧.^_^.
an_andy 2005-04-06
  • 打赏
  • 举报
回复
up
exing 2005-04-06
  • 打赏
  • 举报
回复
看不明白
JERRY_LIU 2005-04-06
  • 打赏
  • 举报
回复
帮你UP,顺便接分!
SeeSunSet 2005-04-06
  • 打赏
  • 举报
回复
在书城看到过一本C#2.0的书,其中一半都是讲泛型的..
helloworld84 2005-04-06
  • 打赏
  • 举报
回复
帮UP一下
farrio 2005-04-06
  • 打赏
  • 举报
回复
泛型好像和OOP是完全不同的设计思路吧。用OOP的思想是不能解释泛型的。
rainlake 2005-04-06
  • 打赏
  • 举报
回复
1是的。但对VB的代码我不太懂。C#里好像没这么麻烦
2genrics对oo没什么影响吧?
3、还是同1,对vb不太熟。只看过C#的代码。感觉还是清晰了好多。

不过总的说过,对genrics这个东东我不太感冒。
dino2000 2005-04-06
  • 打赏
  • 举报
回复
不明白.不懂~~
g961681 2005-04-06
  • 打赏
  • 举报
回复
哎,高深啊!
farrio 2005-03-31
  • 打赏
  • 举报
回复
不是吧,难道我发错地方了?
henrysap 2005-03-30
  • 打赏
  • 举报
回复
哪里有2005下?
xxuu503 2005-03-30
  • 打赏
  • 举报
回复
不晓得,UP
hamadou 2005-03-30
  • 打赏
  • 举报
回复
不懂啊!呵呵!
up!

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧