9

我发现了几个包含使用“设置”功能的表单的 aspx 代码。当我在托管服务器上试用它们时,我收到一条错误消息“不再支持设置”。任何人都知道是什么取代了“设置”命令?

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

Dim mail 
Set mail = Server.CreateObject("CDONTS.NewMail") 
mail.To = EmailTo 
mail.From = EmailFrom 
mail.Subject = Subject 
mail.Body = Body 
mail.Send

与 VB.NET 兼容?

4

3 回答 3

16

如果您的意思是 VB6 语法

Set obj = new Object

那么你可以简单地删除 Set

obj = new Object()
于 2009-09-23T22:39:39.500 回答
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
于 2009-09-23T22:43:34.500 回答
4

.Net 需要记住的一些事项:

  • 切勿在 .Net 代码中使用 Server.CreateObject()。曾经。
  • 永远不要在没有明确类型的情况下使变量变暗。除了新的Option Inferlinq 类型
  • 切勿使用 Set 关键字。除非在定义属性时。

事实上,在 .Net 中,您可能完全摆脱对 CDONTS 的依赖,因为 .Net 具有内置的邮件支持:

Dim smtp As New System.Net.SmtpClient()
Dim message As New System.Net.MailMessage(EmailFrom, EmailTo, Subject, Body)
smtp.Send(message)
于 2009-10-06T17:21:19.323 回答