Vb.net VB6关键字集是什么意思?

Vb.net VB6关键字集是什么意思?,vb.net,vb6,Vb.net,Vb6,我一直在浏览一个旧的VB6代码,我看到了这样的东西 Set AST = CreateObject("ADODB.Stream") 我有使用VB6和VB.NET的经验,但我以前从未在我的VB6项目中使用过这个关键字Set。我在互联网上研究了很多Set的用法,我只知道Properties中的用法,这是我在VB.NET中唯一知道的 Public Property myProperty As String Get Return _myProperty End Get

我一直在浏览一个旧的VB6代码,我看到了这样的东西

 Set AST = CreateObject("ADODB.Stream")
我有使用VB6和VB.NET的经验,但我以前从未在我的VB6项目中使用过这个关键字
Set
。我在互联网上研究了很多
Set
的用法,我只知道
Properties
中的用法,这是我在VB.NET中唯一知道的

Public Property myProperty As String
    Get
      Return _myProperty
    End Get
    Set(value as String)
      _myProperty = value
    End Set
End Property

我认为
Set
在上面的代码中的用法是不同的。这两种方法的区别是什么?我想知道
集合
在VB6中的作用是什么
集合
AST
变量指定一个新的引用,而不是为(当前由
AST
引用的对象)的默认属性指定一个值


web上没有太多的VB6文档,但是VB.Net的一些帮助仍然引用了旧的方法

见:

在Visual Basic 6.0中,对象支持默认属性。例如,在标签控件上,Caption是默认属性,下面示例中的两个赋值是等效的

虽然默认属性允许在编写Visual Basic代码时使用一定数量的速记,但它们有几个缺点:

  • 默认属性使Set语句在Visual Basic语言中成为必需的语句。下面的示例显示了如何使用Set来指示要指定对象引用而不是默认特性

因此,在VB.Net中,
Let
Set
变得过时了(事实上,
Let
在VB6中已经非常过时),因为语言规则发生了变化。分配
A=B
,如果
A
是一个引用,则总是将一个新引用分配给
A



1MarkJ在注释中提供了指向旧VB6文档的链接。

并非完全无关:默认属性仍然存在于VB.NET中,但仅适用于索引属性。例如,.NET中的默认属性允许您编写
myList(index)
,而不是
myList.Item(index)
@StevenLiekens(我链接到的页面中涉及到了这一点),它涵盖了VB 6和.NET的默认属性,并突出显示了它们之间的差异,例如。“在Visual Basic 2008中,默认属性不受支持,除非它们接受参数。”。我想让我的答案集中在VB classic的
集合上。哦..我在“…除非它们接受参数”之前停止阅读MSDN页面“.My bad.+1,但VB6文档仍然可以在MSDN上找到。在VB6用户指南中,这里是和@MarkJ-我的Google fu让我失望。我确实搜索了很长一段时间,但我能找到的只是迁移到VB.NET的有用指南
Dim lbl As Label 
lbl = "Important" 
lbl.Caption = "Important" 
Dim lbl1 As Label, lbl2 As Label 
lbl1 = "Saving" ' Assign a value to lbl1's Caption property. 
lbl2 = lbl1       ' Replace lbl2's Caption property with lbl1's. 
Set lbl2 = lbl1   ' Replace lbl2 with an object reference to lbl1.