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

Odpowiedz Nowy wątek
2011-08-19 19:34
marek
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

Pozostało 580 znaków

2011-08-19 19:36
Rev
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.


Pozostało 580 znaków

2011-08-19 20:59
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....


Przejdę, przejdę, myślał Red. Nie pierwszy raz, przecież przez całe życie właśnie tak, po szyję w gównie, a nad głową pioruny, zawsze tak było...

Pozostało 580 znaków

2011-08-19 22:28
msm
1

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.

Pozostało 580 znaków

2011-08-20 03:10
marek
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.

Pozostało 580 znaków

2011-08-20 08:52
msm
1

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;
}
edytowany 4x, ostatnio: msm, 2011-08-20 08:54

Pozostało 580 znaków

2011-08-20 20:31
marek
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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