Entwickler-Ecke

C# - Die Sprache - Deserialisierung/Löschen


Newbie_2013_ - Sa 30.03.13 21:17
Titel: Deserialisierung/Löschen
Hallo,

habe bei untenstehendem Code ein Verständnisproblem. Es geht dabei um das Löschen des Feldes "AarrayW",welches ich mir nicht erklären kann. Kann mir jemand eine Erläuterung hierzu geben?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
FileDialog ADialog_openFileW = new OpenFileDialog();
            DialogResult AopenDialog_resultW = ADialog_openFileW.ShowDialog();
            AsaveFileNameW = ADialog_openFileW.FileName;

            if (AopenDialog_resultW == DialogResult.OK)
            {
                for (int AdeleteW = 0; AdeleteW < AarrayW.Length && AarrayW[AdeleteW] != null; AdeleteW++) //Array löschen
                {
                    AarrayW[AdeleteW] = null;
                }
                Stream AsaveTestW = new FileStream(AsaveFileNameW, FileMode.Open);
                BinaryFormatter AbinaryFormatterW = new BinaryFormatter();
                AarrayW=(AGenericTestW[]) AbinaryFormatterW.Deserialize(AsaveTestW);
                Acombobox_actualtestW.Items.Clear();                                                           //Comboboxeinträge löschen


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Sa 30.03.13 21:56

Hallo!

Was soll der Code denn tun? Und was steht in AarrayW drin?

Viele Grüße
Christian


Newbie_2013_ - Mo 01.04.13 11:40

Ok. Im Feld "AarrayW" sind integer-Zahlen gespeichert. In dem Code-Ausschnitt soll das Feld "AarrayW" deserialisiert werden. Hilft das als Erläuterung?
Gruss


Ralf Jansen - Mo 01.04.13 11:51

Das löschen des Inhalts des Arrays halte ich für unnötig. Das Deserialisieren wird dir ein neues Array an AarrayW erzeugen womit das alte dereferenziert wird und automatisch der Garbage Collection anheim fällt und somit zerstört wird.

Dein Naming macht den Code schwer lesbar. Sobald du, wie es Standard ist, Variablen klein schreibst kann man die leicht von Typen unterscheiden. Was soll der A Präfix bei jeder Variablen? Wobei du den scheinbar manchmal auch bei Typen (AGenericTestW) benutzt.