Wątek przeniesiony 2017-09-17 11:29 z C# i .NET przez somekind.

Zwracanie objektów z deserializacji

0

Witam,

Korzystając z kompendium na niniejszej stronie zrobiłem test serializacji / deserializacji struktur danych.
Program [main] sprawdza obecność plików w zależności od wyniku wywołuje metodę tworzenia lub loadu obiektów z pliku.

Problem jest taki, że gdy jeżeli w [main] znajduje się jest cała procedura ładowania plików, to mam dostęp do danych obiektów.
Jeżeli load jest wywałany poprzez metodę to w [main] nie mam dostępu do danych obiektów.

Pytanie nowicjusza: jak zwrócić objekty do [main]?

[main]

Fleet.load_data(data_path);
            
Console.Write("Lokalizacja danych 1 :" + data[1].x + "-" + data[1].y);
Console.Read();

[inny plik / struktura Dane]

        public static void load_data(string data_path)
        {

            Dane[] data = new Dane[1];

            FileStream MyStream;
            BinaryFormatter MyFormatter = new BinaryFormatter();
            MyStream = new FileStream(data_path, FileMode.Open);
            // deserializacja 
            data = (Dane[])MyFormatter.Deserialize(MyStream);
        }
1

public static Dane[] load_data(string data_path){

            Dane[] data = new Dane[1];

            FileStream MyStream;
            BinaryFormatter MyFormatter = new BinaryFormatter();
            MyStream = new FileStream(data_path, FileMode.Open);
            // deserializacja 
            return (Dane[])MyFormatter.Deserialize(MyStream);
        }

public static void main(string[] args) {
         var data = Fleet.load_data(data_path);

         Console.Write("Lokalizacja danych 1 :" + data[1].x + "-" + data[1].y);
         Console.Read();
        }

o to Ci chodziło ??

0

Dokładnie o to.
:) thx

0

@Antar a rozumiesz w czym był problem ?

0

[Chyba] Tak, trzeba było zwrócić całą klasę obiektów do [main].

1

Wyrażając się poprawniej:
Metoda (funkcja) load_data zwraca jako wynik typ Tablica Dane (Dane[]). Metodę load_data wykonujemy z main dlatego wynik load_data jest pobierany w main.
Klasą obiektów jest Dane - tj. zwracane obiekty są klasy Dane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1