MSDN的定义:从反射的角度来看,通用类型和普通类型之间的区别是:一个通用类型存在着一个与之关联的类型(组成)的形参集(如果它是通用类型定义的话)或者 类型(组成)的实参集(如果它是构造类型的话)。
然后再看看VB对泛型类的语法声明
Public Class Generic(Of T)
这里的Of表达的是什么?是这种关联是从属关系,即Generic属于T这样吗?
...全文
1739打赏收藏
一个关于泛型类的疑惑
MSDN的定义:从反射的角度来看,通用类型和普通类型之间的区别是:一个通用类型存在着一个与之关联的类型(组成)的形参集(如果它是通用类型定义的话)或者 类型(组成)的实参集(如果它是构造类型的话)。 然后再看看VB对泛型类的语法声明 Public Class Generic(Of T) 这里的Of表达的是什么?是这种关联是从属关系,即Generic属于T这样吗?
我当然知道of是VB的关键字。我之前以为加个of能够更好表现Generic与T的关系,毕竟basic设计初衷就是让人能够用自然语言的语法去理解代码。C#和basic的初衷不同,所以就没有用of T来表达Generic与T的关系。可没有从属关系的话微软为什么要设计of?直接Public Class Generic(T)不就行了?加了of反而把人的思路带偏,有违basic的初衷[/quote]
因为vb没有<>这种写法
Class Generic(T)可能会与其他用括号的语法相冲突,所以加了个of
给你个例子
sub test(Of T)(string)
泛型方法会有两个括号[/quote]
这个冲突完全可以通过两个()来解决,如果真的没有从属关系就没必要加of,完全可以sub test(T)(String)。VB的数组也是()怎么不冲突?
我当然知道of是VB的关键字。我之前以为加个of能够更好表现Generic与T的关系,毕竟basic设计初衷就是让人能够用自然语言的语法去理解代码。C#和basic的初衷不同,所以就没有用of T来表达Generic与T的关系。可没有从属关系的话微软为什么要设计of?直接Public Class Generic(T)不就行了?加了of反而把人的思路带偏,有违basic的初衷[/quote]
因为vb没有<>这种写法
Class Generic(T)可能会与其他用括号的语法相冲突,所以加了个of
给你个例子
sub test(Of T)(string)
泛型方法会有两个括号
我当然知道of是VB的关键字。我之前以为加个of能够更好表现Generic与T的关系,毕竟basic设计初衷就是让人能够用自然语言的语法去理解代码。C#和basic的初衷不同,所以就没有用of T来表达Generic与T的关系。可没有从属关系的话微软为什么要设计of?直接Public Class Generic(T)不就行了?加了of反而把人的思路带偏,有违basic的初衷