9

古いVB6コードを閲覧していて、このようなものを見ました

 Set AST = CreateObject("ADODB.Stream")

私は VB6 と VB.NET を使用した経験がありますSetが、VB6 プロジェクトでこのキーワードを使用したことはありません。私はインターネットで多くのことを調査しましたが、私が知っているのはVB.NETでSetのみ知っている使用法ですProperties

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

Set上記のコードでは別の方法で使用されていると思います。2つのアプローチの違いは何ですか? SetVB6で何をするのか知りたい

4

1 に答える 1

11

Set(によって現在参照されているオブジェクト) の既定のプロパティASTに値を割り当てるのではなく、変数に新しい参照を割り当てています。AST


Web 上には VB 6 のドキュメントはあまりありませんが、 VB.Netのヘルプの一部はまだ古い方法を参照しています。

Visual Basic 6 ユーザー向けに変更された既定のプロパティを参照してください。

Visual Basic 6.0 では、オブジェクトで既定のプロパティがサポートされています。たとえば、Label コントロールでは、Caption が既定のプロパティであり、次の例の 2 つの割り当ては同等です。

Dim lbl As Label 
lbl = "Important" 
lbl.Caption = "Important" 

既定のプロパティを使用すると、Visual Basic コードを記述する際にある程度の簡略化が可能になりますが、いくつかの欠点があります。

...

  • 既定のプロパティにより、Visual Basic 言語では Set ステートメントが必要になります。次の例は、既定のプロパティではなく、オブジェクト参照が割り当てられることを示すために Set が必要な方法を示しています。
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. 

そのため、VB.Net ではLet、言語規則が変更されたため、廃止されましたSet(実際、 VB 6 では既にほとんど廃止されていました)。が参照の場合、Let割り当ては常に新しい参照を に割り当てます。A = BAA


1 MarkJ は、コメントで古い VB6 ドキュメントへのリンクを提供しています。

于 2013-08-05T06:14:36.697 に答える