• 全部
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API
  • 问答

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)
感觉有点循环声明的感觉。有点吃不准。
...全文
158 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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!
回复
相关推荐
综教楼后的那个坑用双向链表实现 描述   在 LIT 综教楼后有一个深坑,关于这个坑的来历,有很多种不同的说法。其中一种说法是,在很多年以前,这个坑就已经在那里了。这种说法也被大多数人认可,这是因为该坑有一种特别的结构,想要人工建造是有相当困难的。   从横截面图来看,坑底成阶梯状,由从左至右的 1..N 个的平面构成(其中 1 ≤ N ≤ 100,000),如图:    *            * :    *            * :    *            * 8    *    **      * 7    *    **      * 6    *    **      * 5    *    ********* 4 <- 高度    *    ********* 3    ************** 2    ************** 1 平面 |  1  |2|   3    | 每个平面 i 可以用两个数字来描述,即它的宽度 Wi 和高度 Hi,其中 1 ≤ Wi ≤ 1,000、1 ≤ Hi ≤ 1,000,000,而这个坑最特别的地方在于坑底每个平面的高度都是不同的。每到夏天,雨水会把坑填满,而在其它的季节,则需要通过人工灌水的方式把坑填满。灌水点设在坑底位置最低的那个平面,每分钟灌水量为一个单位(即高度和宽度均为 1)。随着水位的增长,水自然会向其它平面扩散,当水将某平面覆盖且水高达到一个单位时,就认为该平面被水覆盖了。   请你计算每个平面被水覆盖的时间。    灌水 水满后自动扩散 | | * | * * | * * * * V * * V * * * * * * .... * *~~~~~~~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~**~~~~~~* *~~~~**~~~~~~* * ********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* ************** ************** ************** ************** ************** **************    4 分钟后    26 分钟后        50 分钟后    平面 1 被水覆盖     平面 3 被水覆盖    平面 2 被水覆盖输入   输入的第一行是一个整数 N,表示平面的数量。从第二行开始的 N 行上分别有两个整数,分别表示平面的宽度和高度。 输出   输出每个平面被水覆盖的时间。
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2005-03-30 05:28
社区公告
暂无公告