• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[C#] integral(zaprzyjaźnianie klas) na czym dokładnie polega, lista/kolekcja klas pochodnych.

Object Storage Arubacloud
0 głosów
411 wizyt
pytanie zadane 6 czerwca 2017 w C# przez Isild Użytkownik (580 p.)
Witam,
chciałbym się dowiedzieć jak w C# dokładnie działa integral(do zaprzyjaźnienia klas, nie chcę używać getterów i setterów), jak zaprzyjaźnić klaseA i klaseB.

Dodatkowo chciałbym się zapytać czy w C# mogę zrobić liste/kolekcje klasy KlasaBazowa, która będzie przechowywać elementy KlasyPochodnej1 i KlasyPochodnej2.
komentarz 7 czerwca 2017 przez adrian17 Ekspert (344,860 p.)

integral(do zaprzyjaźnienia klas

Nie wiem o czym mówisz. Jakiś link, przykład tego o co pytasz?

Dodatkowo chciałbym się zapytać czy w C# mogę zrobić liste/kolekcje klasy KlasaBazowa, która będzie przechowywać elementy KlasyPochodnej1 i KlasyPochodnej2.

Jasne. Wystarczyło spróbować.

komentarz 7 czerwca 2017 przez Isild Użytkownik (580 p.)
Niestety nie mogę podać konkretnego linku, ponieważ szukając zaprzyjaźnienia w c# przejrzałem wiele stron i tylko kilka razy gdzieś była wzmianka o integralu i właśnie nie było napisane jak to zrobić, tylko że jest taka możliwość.
Chcę udostępnić atrybuty i metody z klasy do klasy bez getterów i setterów.
komentarz 7 czerwca 2017 przez adrian17 Ekspert (344,860 p.)

C# nie ba bezpośredniego odpowiednika zaprzyjaźnienia klas z C++a (co zresztą i tak jest tam mocno odradzane).

bez getterów i setterów

W C# nie trzeba ręcznie pisać getterów/setterów, jak w Javie i C++ie.

Chcę udostępnić atrybuty i metody z klasy do klasy

Możliwe, że masz coś źle zaprojektowane. Mógłbyś powiedzieć konkretnie, co chcesz zrobić?

komentarz 7 czerwca 2017 przez Isild Użytkownik (580 p.)
edycja 7 czerwca 2017 przez Isild

To tak:

Tworzę Klasa1, Klasa1Pochodna, Klasa1PochodnaA, oraz osobną klasę Klasa2.

Chcę aby Klasa2 była listą obiektów klasy Klasa1 oraz mogła wywoływać metody z Klasa1Pochodna, Klasa1PochodnaA takie jak popraw, usuń.

EDIT:
Może to będzie jaśniejsze:

//klasa bazowa
internal abstract class KlasaA
{
        int x;
        string n;
        
        public KlasaA()
        {
           DodajDane();
        }
        
        public virtual void DodajDane()
        {
        x=Convert.ToInt32(Console.ReadLine());
        n=Console.ReadLine();
        }

        public virtual void Pokaz()
        {
        Console.WriteLine("obiekt klasyA: " + x + " " + n + "\n");
        }
}

//klasa pochodna
class KlasaPochodnaA : KlasaA
{
        int z;
        
        public KlasaPochodnaA()
        {
           DodajDane();
        }
        
        public virtual void DodajDane()
        {
        z=Convert.ToInt32(Console.ReadLine());
        }

        public virtual void Pokaz()
        {
        Console.WriteLine(" "+ z+"\n");
        }
}

//klasa która ma być listą 

class Lista
{
        KlasaA lista = new List<KlasaA>() //nie wiem jak zrobić coś takiego
        
        public Lista()
        {
           ... 
        }
        
        public DodajElement()
        {
        ...
        }
}

 

komentarz 7 czerwca 2017 przez adrian17 Ekspert (344,860 p.)

Przykład trochę słaby, bo KlasaPochodnaA nie ma powodu by dziedziczyć po KlasaA, ale udawajmy że ma.

KlasaA lista = new List<KlasaA>() //nie wiem jak zrobić coś takiego

To nie ma związku z żadnym dziedziczeniem, po prostu próbujesz z jakiegoś powodu przypisać listę rzeczy do zupełnie innego typu. To ma tyle sensu co przypisanie do inta. Powinno być

List<KlasaA> lista = new List<KlasaA>();

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 365 wizyt
pytanie zadane 2 czerwca 2017 w C# przez Szymek_sw Początkujący (420 p.)
0 głosów
1 odpowiedź 273 wizyt
0 głosów
2 odpowiedzi 137 wizyt
pytanie zadane 20 lipca 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...