2016-07-28 7 views
0

Ich erstelle eine Klasse basierend auf anderen Klassen. Ich versuche, der Klasse einen Wert in ihrem Konstruktor zuzuweisen, bekomme aber einen Fehler.Kopieren Sie den Wert in die Basisklasse

Fehler 1 'Me' kann nicht Ziel einer Aufgabe sein.

gibt es eine Möglichkeit, es zu lösen ..? Hier ist ein Code, den ich erstellt habe

Public Class tabelDSN 
    Inherits DataTable 
    Public Sub New(ByVal dt As DataTable) 
     Me = dt.Copy() 
    End Sub 
    Default Public ReadOnly Property rw(ByVal idx) As DataRow 
     Get 
      Return Me.Rows(idx) 
     End Get 
    End Property 
End Class 
+0

Sie müssten die Daten aus der Quellentabelle in die aktuelle Tabelle kopieren. Denken Sie darüber nach, was der Code, den Sie ausführen möchten, tatsächlich tut. 'Me' ist das aktuelle Objekt, also wie könnte das aktuelle Objekt sich ein anderes Objekt zuweisen? Das würde bedeuten, dass das aktuelle Objekt magisch zu einem anderen Objekt werden müsste, was keinen Sinn ergibt. Könntest du magisch eine andere Person werden, oder würdest du die Eigenschaften einer anderen Person auf dich selbst anwenden müssen? Es ist das Letztere, also muss das auch hier geschehen. – jmcilhinney

Antwort

1

Sie könnten Ihre tabelDSN Klasse ein Wrapper für die Datatable-Klasse machen, indem Sie die Inherits Entfernen und Hinzufügen von einem eigenen Datatable-Feld des Konstruktor Parameter zu halten. Der Code würde so aussehen:

Public Class tabelDSN 
    Private _dt as DataTable 
    Public Sub New(ByVal dt As DataTable) 
     _dt = dt.Copy() 
    End Sub 
    Default Public ReadOnly Property rw(ByVal idx) As DataRow 
     Get 
      Return _dt.Rows(idx) 
     End Get 
    End Property 
End Class 
Verwandte Themen