Transfer listy pomiędzy klasami.

2015-05-28 11:53
0

Dzień dobry,

Chciałbym dowiedzieć się, czy jest możliwość przenieść listę pomiędzy klasami.

Klasa1
{
     W niej zdefiniowana lista obiektów typu klasa 2

     Klasa2{ ... }
}

Klasa3
{
    Tutaj chciałbym operować na liście z klasy 1.
}

Dokładniej chodzi mi o to, abym mógł użyć listy zdefiniowanej w Klasie1 - w Klasie3.
Na takiej zasadzie, że tworzę sobie najpierw obiekt Klasy1, wypełniam listę, następnie tworzę obiekt Klasy3, który chciałbym żeby przyjął listę z Klasy1.

Pozdrawiam.

dodanie znacznika <code class="csharp"> - @furious programming

edytowany 1x, ostatnio: furious programming, 2015-05-28 17:51

Pozostało 580 znaków

2015-05-28 12:10
1

Udostępnij tę listę jako właściwość Klasy1, a potem przekaż ją w konstruktorze do Klasy3.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-05-28 12:16
0
somekind napisał(a):

Udostępnij tę listę jako właściwość Klasy1, a potem przekaż ją w konstruktorze do Klasy3.

Mógłbyś pokazać to jakoś bardziej od praktycznej strony? :)

Dzięki.

Pozostało 580 znaków

2015-05-28 12:21
0

A czego konkretnie nie zrozumiałeś?


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-05-28 12:27
0

Jak to w formie kodu powinno wyglądać.

Pozostało 580 znaków

2015-05-28 12:39
2015-05-28 12:41
2
Klasa1
{
    public List<string> Lista { get; private set; }
}

Klasa3
{
    private List<string> lista;

    public Klasa3(List<string> lista)
    {
        this.lista = lista;
    }
}

var klasa1 = new Klasa1();
var klasa3 = new Klasa3(klasa1.Lista);

"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
No że Ci się chciało... :) - fourfour 2015-05-28 12:42
Projekt mi się kompiluje. :P - somekind 2015-05-28 12:53

Pozostało 580 znaków

2015-05-28 13:21
0

Dzięki, jednak u mnie wygląda to tak:

Klasa1
{
    public List<Element> elements_list;

    class Element
        {
            public double value_a;
            public double value_b;

            public int c;

        }
}

Klasa3
{
   Tutaj pojawia się problem z tym, że nie mogę pracować na typie Element
}

Pozdrawiam.

edytowany 3x, ostatnio: furious programming, 2015-05-28 17:52
Pokaż pozostałe 2 komentarze
jedyna rzecz jaka by sie nie skompilowala to to, ze nie ma class przed nazwa klasy - FakeAccount 2015-05-28 13:53
@FakeAccount: nie - nie skompiluje się bo nie da się wystawić publicznie listy elementów prywatnych - Świetny Mleczarz 2015-05-28 14:23
No tak, ale to jest problem o którym pisał auto posta - FakeAccount 2015-05-28 14:26
Inaczej zrozumiałem problem - napisał że pojawia się dopiero w klasie3 - Świetny Mleczarz 2015-05-28 15:12
Nie pomyślałem, a wystarczyło wydobyć zagnieżdżoną klasę na zewnątrz, wtedy stała się wiadoma dla wszystkich pozostałych. Dzięki za odpowiedzi :) - MattG 2015-05-28 15:48

Pozostało 580 znaków

2015-05-28 13:29
2

To uczyń klasę Element publiczną, a nie prywatną.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-05-28 13:46
1

using System;
using System.Collections.Generic;

class Klasa1{
    public Klasa1(){ this.lista = new List<Klasa2>(); }
    public class Klasa2{ };
    public List<Klasa2> lista;
}

class Klasa3{
    public Klasa3(List<Klasa1.Klasa2> lista){ this.lista = lista; }
    private List<Klasa1.Klasa2> lista;
}

public class Test
{
    public static void Main()
    {
        Klasa1 kl1 = new Klasa1();
        Klasa3 kl3 = new Klasa3(kl1.lista);
    }
}

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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