Zwrócenie kilku tablic za pomocą jednej metody?

0

Witajcie,
Jestem początkujący w programowanie generalnie. W pracy robię takie małe aplikacje na własny użytek, lub użytek współpracowników.

Mam mały problem. Mam klasę "Measurement", w której mam metodę "Streamer", która obrabia mi pewien plik i na końcu przypisuje mi odpowiednie liczby do odpowiednich tablic double[] oxygenTimeTable i double[] oxygenResultsTable. Chcę te tablice przesłać z tej metody do metody "ChartCreator", która na podstawie tych tablic wygeneruje wykres.
Jeśli miałbym zwrócić jedną tablicę, nie byłoby problemu. Jednak do dwóch nie wiem jak się zabrać. Udało mi się uzyskać efekt przez stworzenie metody, która przypisuje tablicę do innej, potem zwraca.....i to działa, ale wygląda kalecko.
Wstyd mi wrzucać to jak wybrnąłem z problemu, ale i tak mnie nie znacie :D ( anonimowy w internecie :D )
(Na potrzeby forum uprościłem kod)

namespace ConsoleApplication10
{
    class Program
    {
        class Measurement
        {
            private double[] oxygenTimeTable = new double[5];
            private double[] oxygenResultsTable = new double[5];


            public void Streamer()
            {
                // przyporzadkuje jakies tam wartosci
                oxygenTimeTable[2] = 10;
                oxygenResultsTable[3] = 5;

            }

            public double[] SenderA1()
            {
                double[] _oxygenTimeTable = oxygenTimeTable;
                return _oxygenTimeTable;
            }

            public double[] SenderA2()
            {
                double[] _oxygenResultsTable = oxygenResultsTable;
                return _oxygenResultsTable;
            }

            public void ChartCreator(double[] a1, double[] a2)
            {
                double[] tutajChcePrzekazacTablice1 = a1;
                double[] tutajchcePrzekazacTablice2 = a2;
            }
        }

        static void Main(string[] args)
        {
            Measurement test = new Measurement();
            test.Streamer();
            test.ChartCreator(test.SenderA1(), test.SenderA2());
            

        }
    }
}

Mógłbym prosić o radę jak zrobić to profesjonalnie ?

Pozdrawiam...

1

Zrobiłbym w ten sposób, stworzyłbym jakąś klasę, która przechowa mi dane a później odwołując się do obiektu klasę pobiorę ustawione dane.

class Program
    {
        //nowa klasa testowa, ma w sobie zmienna oxygenTi... i tą drugą jako tablice double, od razu zasięg tablicy jest zadeklarowany
        class TestClass
        {
            public double[] oxygenTimeTable = new double[5];
            public double[] oxygenResultsTable = new double[5];
        }

        class Measurement
        {
            TestClass tClass; // aby mozna bylo odwolywac sie na w calej klasie.


            public void Streamer()
            {
                // po wywolaniu metody streamer tworzona jest nowa klasa testowa, ktora przechowuje double
                tClass = new TestClass();
                tClass.oxygenTimeTable[2] = 10;
                tClass.oxygenResultsTable[3] = 5;
            }

            /* aby wywołac ta metode konieczne jest wywolanie metody Streamer. Dla bezpiczenstwa mozna tworzyc nowy obiekt w konstruktorze
            np.

            public Measurement()
            {
                tClass = new TestClass();
            }

            */

            public void ChartCreator()
            {
                double[] tutajChcePrzekazacTablice1 = tClass.oxygenTimeTable;
                double[] tutajchcePrzekazacTablice2 = tClass.oxygenResultsTable;
            }
        }

        static void Main(string[] args)
        {
            Measurement test = new Measurement();
            test.Streamer();
            test.ChartCreator();


        }
    }
}

Można też to zrobić w ten sposób z użyciem konstruktora, czyli w momencie gdy tworzysz nowy obiekt Measurement aa = new Measurement();
wykonuje się to co jest podane w konstruktorze czyli public Measurement...

class Program
    {
        class TestClass
        {
            public double[] oxygenTimeTable = new double[5];
            public double[] oxygenResultsTable = new double[5];
        }

        class Measurement
        {
            private TestClass tClass;

            public Measurement()
            {
                tClass = new TestClass();
            }

            public void Streamer()
            {
                tClass.oxygenTimeTable[2] = 10;
                tClass.oxygenResultsTable[3] = 5;
            }

            public void ChartCreator()
            {
                double[] tutajChcePrzekazacTablice1 = tClass.oxygenTimeTable;
                double[] tutajchcePrzekazacTablice2 = tClass.oxygenResultsTable;
            }
        }

        static void Main(string[] args)
        {
            Measurement test = new Measurement();
            test.Streamer();
            test.ChartCreator();


        }
    }
}

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