0

私はそのようなクラスを持っています:

Public Class MyXElement
    Inherits XElement

    Public Sub New(other As XElement)
        MyBase.New(other)
    End Sub

    Public Sub New(name As XName)
        MyBase.New(name)
    End Sub

    Public Sub New(other As XStreamingElement)
        MyBase.New(other)
    End Sub

    Public Sub New(name As XName, content As Object)
        MyBase.New(name, content)
    End Sub

    Public Sub New(name As XName, ParamArray content() As Object)
        MyBase.New(name, content)
    End Sub

End Class

次のコードが失敗するのはなぜですか?

Dim x1 As XElement = <demo></demo>
Dim x2 As MyXElement
x2 = x1

例外が発生します: タイプ 'System.Xml.Linq.XElement' のオブジェクトをタイプ 'MyXElement' にキャストできません。

4

2 に答える 2

0

Marcin は、それが機能しない理由を説明しました。XElement私の答えは、まだに変換するために何をする必要があるかを示していますMyXElement

で定義したコンストラクターを使用する必要がありますMyXElement

Dim x2 = new MyXElement(x1)
于 2013-07-02T07:48:09.977 に答える