Uzyskanie obiektu, który utworzył klasę z jej instancji

Uzyskanie obiektu, który utworzył klasę z jej instancji
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie wiem czy ta nazwa tematu w ogole podpowiada o co moze chodzic ale jestem poczatkujacy i mialem problem z dobrym okresleniem problemu :D

Kopiuj
    class Kontakty
    {
         public List<Osoba> listaZnajomych = new List<Osoba>();
         public DodajZnajomego(Osoba o)
         {
              listaZnajomych.Add(o);
              //no i teraz chcialbym dodac w druga strone, tzn. do listy znajomych osoby o dodac osobe ktora wywolala te metode
         }
    }
    class Osoba
    {
         public Imie {get; set; }
         public Nazwisko {get; set; }
         
         public Kontakty kontakty = new Kontakty();
    } 

Jak coś takiego uzyskac i czy ma to sens?

Czy może tworzenie klasy Kontakty to błąd i powinienem w klasie osoba dodać:

Kopiuj
 List<Osoba> listaZnajomych = new List<Osoba>();

?
Wtedy dodawanie w dwie strony nie byłoby problemem.

  • Rejestracja: dni
  • Ostatnio: dni
0

object.GetType() ?

dam1an
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1589
2

Chyba tak by było lepiej

Kopiuj
class Osoba
    {
         public string Imie {get; set; }
         public string Nazwisko {get; set; }
         public List<Osoba> Kontakty = new List<Osoba>();

         public void DodajKontakt(Osoba os)
         {
               Kontakty.Add(os);
               os.Kontakty.Add(this);
         }
    }

I później:

Kopiuj
 
Osoba ja = new Osoba() { Imie = "asdf", Nazwisko = "sadf" };
ja.DodajKontakt(new Osoba() { Imie = "sf", Nazwisko = "dfsdfs" });

Ale wydaje mi się że to też nie jest najlepsze rozwiązanie.

  • Rejestracja: dni
  • Ostatnio: dni
0

Takie coś miałem wcześniej ale pomyślałem że może lepiej bedzie zrobic osobna klase na kontakty, w ktorej beda metody takie jak np. AddContact,RemoveContact,CheckCommonContacts.

Przy klasie Kontakty tak jak podalem moglbym przekazywac przez referencje obiekt Person ktory tworzy klase i zapisywac go w dodatkowym polu klasy Kontakty, ale tez nie wiem czy to dobre rozwiazanie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.