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

Kilka pytań C#

Cloud VPS
0 głosów
906 wizyt
pytanie zadane 2 grudnia 2015 w C# przez mrcnsct Nałogowiec (36,390 p.)

Witam. Uczę się C# i wcześniej nie miałem styczności z programowaniem obiektowym. W związku z tym mam kilka pytań.
1. Mam klasę o nazwie Klasa, a później mam utworzyć właściwość typu Klasa. Czy o to chodzi?

public Klasa k1 {get; set;}


Jeśli tak, to co zawiera taka właściwość i jak się do niej odwołać? Jak przekazać ją jako parametr? Czy zawiera ona to samo co zawiera klasa Klasa?
2. Jak przekazać klasę do konstruktora i jak ustawić jej właściwości?
3. Jak przekazać obiekt do metody i jak go zwrócić?
4. Mam w projekcie kilka katalogów. Próbuję utworzyć w funkcji main obiekt, którego klasa jest w pliku w innym katalogu. Niestety Visual Studio zachowuje się tak jakby ta klasa nie istniała. Co zrobić, aby to działało?

Proszę o pomoc.

2 odpowiedzi

+2 głosów
odpowiedź 2 grudnia 2015 przez Surykat Stary wyjadacz (14,780 p.)
wybrane 2 grudnia 2015 przez mrcnsct
 
Najlepsza

1. Tak. Właściwość jest tym samym, co zwykła zmienna, odwołujesz się do niej dokładnie tak samo. Możesz natomiast dopisać do niej instrukcje, które wykonują się przy odczycie tej właściwości (blok get) i przy zapisie (blok set, np. walidacja danych). Właściwość jest taką mieszanką metody oraz zmiennej. 

Generalnie właściwości powinny operować na prywatnych polach, ale jeśli w blokach get oraz set nic nie chcesz zamieszczać, to tak jak napisałeś, jest poprawnie. Jesli chcesz zawrzeć jakieś instrukcje, twoja właściwościwości wyglądają tak:

private int _liczba;
public int Liczba {get
                       {
                        //jakiś dodatkowy kod
                        return _liczba;
                       } 
                   set
                       {
                       //jakiś dodatkowy kod
                       _liczba = value;
                       } 
                    };

Mam nadzieję, że nie pochrzaniłem składni, tu na forum nie ma intelisense'a :D

2.

Konstruktor(typ_obiektu Nazwa)
{
     //kod konstruktora
}

3. 

typ_obiektu metoda(typ_obiektu Nazwa)
{
   return Nazwa;
}

4. Jeśli jest w innym katalogu, musisz dopisać u góry:

using nazwa_projektu.nazwa_katalogu;

 

To są podstawy, polecam ci kurs z obiektowości Pana Zelenta. On jest co prawda dotyczący C++, ale obiektowość i jej zasady są generalnie takie same.

+2 głosów
odpowiedź 2 grudnia 2015 przez adrian17 Mentor (354,120 p.)

 Czy o to chodzi?

Tak, o to chodzi. To "automatyczna właściwość", jej najbardziej skrócona postać.

Jeśli tak, to co zawiera taka właściwość i jak się do niej odwołać?

W tym momencie w zasadzie pytasz "co to jest właściwość". Na Twoim miejscu bym jeszcze raz zajrzał do książki / poradnika / cokolwiek używasz do nauki.

Jak przekazać klasę do konstruktora i jak ustawić jej właściwości? 

Masz na myśli przekazywanie jakiegoś obiektu do konstruktora, czy konstruowaną klasę? Jeśli pierwsze, to jak w każdej metodzie - przez parametr. Jeśli drugie, to... nie rozumiesz czym jest konstruktor, zajrzyj do książki.

Jak przekazać obiekt do metody i jak go zwrócić? 

Zajrzyj do książki... ugh.

public Klasa1 Metoda(Klasa2 argument)
{
    return /* obiekt typu Klasa1 */
}

// wywolanie
obiekt.Metoda(argument);

Mam w projekcie kilka katalogów. Próbuję utworzyć w funkcji main obiekt, którego klasa jest w pliku w innym katalogu. Niestety Visual Studio zachowuje się tak jakby ta klasa nie istniała. Co zrobić, aby to działało?

Czy wszystkie pliki są w projekcie VS? Pokaż screenshoty z otwartym w VS plikiem z klasą oraz z mainem.

komentarz 2 grudnia 2015 przez mrcnsct Nałogowiec (36,390 p.)
Dziękuję za odpowiedź. Jak widzę trafiłem na niezbyt przyjazne źródło wiedzy jak na początek nauki C#.

Podobne pytania

0 głosów
2 odpowiedzi 452 wizyt
pytanie zadane 7 stycznia 2023 w C i C++ przez mayak Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 808 wizyt
pytanie zadane 13 października 2022 w C i C++ przez Bilib Użytkownik (990 p.)
0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 20 kwietnia 2018 w Java przez Sypni Nowicjusz (140 p.)

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 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

Kursy INF.02 i INF.03
...