9

「設定」関数の使用を含むフォームの aspx コードをいくつか見つけました。ホスティング サーバーで試してみると、「セットはサポートされていません」というエラー メッセージが表示されます。「Set」コマンドに取って代わったものを知っている人はいますか?

より具体的には、これを変更するにはどうすればよいですか:

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

その後、単にセットを削除できます

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() を使用しないでください。これまで。
  • 明示的な型を指定せずに、変数を Dim しないでください。Option Infer新しいlinq タイプを除く
  • Set キーワードは絶対に使用しないでください。プロパティを定義する場合を除きます。

実際、.Net には組み込みのメール サポートがあるため、.Net ではおそらく CDONTS への依存を完全に取り除くことができます。

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 に答える