Różnia między " public int X () " a "public int X"

0

Witam,uczę się świetnego kursu c# z wlaśnie tej stronki ;) i jestem w rozdziale programowanie obiektowe.Miałem mały problem ze zrozumieniem metod ale poradziłem sobie i teraz nie bardzo rozumiem jak działa to : class Foo
{
private int month = 12;

public int Month // z tym mam problem 
{
    get
    {
        return month; 
    }
    set
    {
        if (value > 1 && value <= 12)
        {
            month = value;
        }
    }
}

}


dlaczego po 'public int month' nie ma '()'?w metodach właśnie tak by to wyglądało,jeżeli mogłby mi ktoś wytłumaczyć byłbym wdzięczny..
PS.

A odnośnie metod to cy dobrze je zrozumiałem:
służą głównie po to aby nie zaśmiecać kodu?
np.

using System;

class Metody
{
public int cyfra;

public int mnozenie(int wynik)
{

    wynik = cyfra;
    return wynik * wynik * wynik;

}

class Program
{
    static void Main()
    {
        Metody test = new Metody();


        Console.WriteLine("podaj liczbę");
        test.cyfra = int.Parse(Console.ReadLine());
        Console.WriteLine(test.mnozenie(test.cyfra));
        Console.ReadLine();
    }
   


}

}


mniej więcej o to w tym chodzi?
Pozdrawiam
Marek
1

Weź może jakąś porządną książkę o podstawach programowania. Nie wiedząc zupełnie nic, darmowe, internetowe kursy z reguły nie są najlepszym wyborem.
A co do pierwszej rzeczy: to właściwość (property), a nie metoda.

0
using System;
 
class Metody
{
   
 
 
    public int mnozenie(int wynik)
    {
 
   
        return wynik * wynik * wynik;
 
    }
}
 
    class Program
    {
        static void Main()
        {
            Metody test = new Metody();
 
            Console.WriteLine("podaj liczbę");
            Console.WriteLine(test.mnozenie(int.Parse(Console.ReadLine())));
            Console.ReadLine();
        }
 
 
 
    }
 

A nie tak ?

do tego to nie ma sensu -_-...
poco definiować cyfra...
W ogóle kto cie tego uczy....

2

Zapis

int Nazwa
{
    get { ... }
    set { ... }
}

jest równoważny
int Nazwa_get() { ... }
void Nazwa_set(int nowaWartość) { ... }

Wtedy przypisanie Nazwa = 2 jest tłumaczone przez kompilator na Nazwa_set(2), a pobranie Nazwa na Nazwa_get(); To tylko takie ładnie wyglądające metody.

PS. Mimo wszystko książka to fajna rzecz, nawet najlepszy kurs jest ciężko zrozumieć jeśli to twój pierwszy język. Mi w każdym razie ciężko by było tak zacząć. Ale jeśli dasz radę to nie przejmuj się tym.

0

Czyli mogę prze to rozumieć że 'get' to metoda która zwraca wartość a 'set' to metoda która nie zwraca żadnej wartości i może dać warunek ?

PS.'value' używa się TYLKO kiedy stosujemy get i set?
Pozdr.

2

Tak, pole get można rozumieć jak metodę zwracającą wartość, a set to metoda która zmienia tą wartość na parametr value (value to zmienna kontekstowa, pojawia się tylko w bloku set). Najprostszą możliwą właściwością jest

int numer;
int Numer
{
   get { return numer; }
   set { numer = value; }
}

Teraz Numer zachowuje się tak jakby był zwykłą zmienną.

Istnieje do tego specjalnego przypadku nawet skrót. Równoważny kod:

int Numer
{
   get;
   set;
}
0

Dzięki za odpowiedź,to wiele wyjaśnia .
Pozdr.

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