Wie Pass Referenzierten Datentabelle, die in C#?
Arbeite ich an C# - Projekt
Ich Habe 2 Klassen, Wie diese:
public class A
{
public DataTable dtA {get; set;}
}
public class B
{
DataTable dtB{get;set;}
public B(DataTable dt)
{
dtB = dt;
}
}
static void Main()
{
A a = new A();
B b = new B(a.dtA);
}
Ich Will das dtB Genau dtA (ref dtA). Aber mit Code dtB ist Neue DataTable Und ist Nicht von der dtA.
(ich Möchte, Wenn eine Veränderung dtB , diese Änderung gilt dtA)
Wie Mein Problem Zu Lösen?
GELÖST:
wenn dtA Wurde für null und Pass, dtB, dtB-Immer null.(auch Wenn für dtA füllen mit Daten)
Aber wenn dtA war nicht null und pass, dtB, dtB, dtA Wird von Einer Hand.
zusammengesetzte Typen werden per Referenz übergeben automatisch, dein code ist in Ordnung
InformationsquelleAutor Mehdi Radi | 2013-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code funktioniert, wie Sie wollen, weil DataTable ist ein Referenz-Typ.
Allerdings müssen Sie darauf achten, weil Sie leicht fallen in dieser situation
Wie Sie sehen können, ändern Sie die DataTable in Einem verlassen der DataTable in B immer noch auf die alte Referenz und somit die beiden sind nicht mehr die gleichen. Überprüfen Sie die Antwort von Tim Schmelter für einen besseren Ansatz.
InformationsquelleAutor Steve
versuchen mit ref
InformationsquelleAutor TalentTuner
Beide
A
undB
zeigen das gleicheDataTable
, da alle Referenz-Typen (wieDataTable
) werden per Referenz übergeben, so dass Ihr code sollte gut funktionieren.InformationsquelleAutor gzaxx
Wenn Sie möchten, verwenden Sie die gleichen
DataTable
sollten Sie verwenden die gleiche Referenz vonA
:Nun sind beide mit dem gleichen Tisch:
Könnte man auch lassen
B
Erben vonA
wenn es das ist, was Sie eigentlich wollen:InformationsquelleAutor Rango