用VB替换函数"Set"是什么用的?

6 vb.net set

我找到了几个表单的aspx代码,其中包括使用"Set"函数.当我在托管服务器上尝试它们时,我收到一条错误消息"不再支持Set".有谁知道什么取代了"Set"命令?

更具体地说,我该如何改变这个:

Dim mail 
Set mail = Server.CreateObject("CDONTS.NewMail") 
mail.To = EmailTo 
mail.From = EmailFrom 
mail.Subject = Subject 
mail.Body = Body 
mail.Send
Run Code Online (Sandbox Code Playgroud)

要兼容VB.NET吗?

Cha*_*ion 14

如果你的意思是VB6语法

Set obj = new Object
Run Code Online (Sandbox Code Playgroud)

然后你可以简单地删除Set

obj = new Object()
Run Code Online (Sandbox Code Playgroud)


Roh*_*est 6

Set是VB6中的一个关键字,其中包含VB.NET的关键字,在此上下文中使用的关键字已被删除.

以前,Set用于表示正在分配对象引用(Let是默认值).由于除非接受参数,否则不再支持默认属性,因此已删除这些语句.

Module Module1
    Sub Main()

    Dim person As New Person("Peter")
    Dim people As New People()

    people.Add(person)

    'Use the default property, provided we have a parameter'

    Dim p = people("Peter")

    End Sub
End Module

Public Class People
    Private _people As New Dictionary(Of String, Person)

    Public Sub Add(ByVal person As Person)
    _people.Add(person.Name, person)
    End Sub

    Default Public ReadOnly Property Person(ByVal name As String) As Person
    Get
        Return _people(name)
    End Get
    End Property
End Class

Public Class Person
    Private _name As String

    Public Sub New(ByVal name As String)
    _name = name
    End Sub

    Public ReadOnly Property Name() As String
    Get
        Return _name
    End Get
    End Property
End Class
Run Code Online (Sandbox Code Playgroud)

  • 假设您有一个具有默认属性Name的Person对象.然后你可以说HisName = MyPersonObject(并且VB会理解你的意思是MyPersonObject.Name.现在如果你想将MyPersonObject分配给HisName,你必须使用Set,即设置HisName = MyPersonObject.现在默认属性不是支持,Set变得多余并被删除. (8认同)
  • 哇,在这个深度理解语言的荣誉.但是,"Set"关键字未从语言中删除; 会员财产制定者需要它,所以他们为此选择了它. (2认同)