Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Moze neko da objasni VOID i metode koje vracaju vrednost?

[es] :: .NET :: Moze neko da objasni VOID i metode koje vracaju vrednost?

[ Pregleda: 5098 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mizob

Član broj: 13465
Poruke: 1108
195.178.35.*



+5 Profil

icon Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 16:14 - pre 240 meseci
Svuda pise na su void metode one koje ne vracaju vrednost,e ja to ne razumem ,imam npr metodu

Code:

static void oduzmi(int a,int b,out int c)
        {
            c = a - b;
        }


vraca mi se vrednost c,zar ne?

Pa kako ona one ne vracaju vrednost?
Verovatnoje pitanje vama glupo,ali ja to ne mogu da razumem nikako,a inace sam pocetnik sto se toga tice...
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 16:26 - pre 240 meseci
Citat:
Milos Zobenica:Svuda pise na su void metode one koje ne vracaju vrednost,e ja to ne razumem ,imam npr metodu
...
vraca mi se vrednost c,zar ne?
Pa kako ona one ne vracaju vrednost?


Kad se kaže da ne vraća vrednost ne misli se na out parametre nego na povratnu rednost same funkcije (onu koju vraćaš sa return), npr.

Code:

static int oduzmi2(int a,int b)
{
return (a - b);
}


E sad, u čemu je razlika, razlika je u tome da povratnu vrednost funkcije možeš da iskoristiš u izrazima, dok out parametar ne možeš bez privremene promenljive:

npr.
Code:

int x, p=10, q=20, r=30;
x = p * oduzmi2(q, r);


dok bi ovo isto sa oduzmi moralo da bude:
Code:

int x, t, p=10, q=20, r=30;
oduzmi (q, r, out t);
x = p * t;


jel sad jasnije.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mizob

Član broj: 13465
Poruke: 1108
195.178.35.*



+5 Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 16:53 - pre 240 meseci
Da,jasno mi je sada,hvala.
Sad bas pravim,UCIM,pa sam odlucio da napraivm program za +,-,*,/ ,pa mi izbaci neke greske da mi metode +,-,*,/ nemoaju return value,pa ako mozes da pomognes,i ako mozes

Code:

using System;

namespace Test
{
    class Racunanje
    {
        
        public static int Deljenje(int a, int b, out int c)
        {
            c = a / b;
            Console.WriteLine("Deljenje brojeva {0} i {1} iznosi {2}: ",a ,b ,c);
        }
        
        public static int Mnozenje(int a, int b, out int c)
        {
            c = a * b;
            Console.WriteLine("Mnozenje brojeva {0} i {1} iznosi {2}: ",a ,b ,c);
        }
        
        public static int Sabiranje(int a, int b, out int c)
        {
            c = a + b;
            Console.WriteLine("Sabiranje brojeva {0} i {1} iznosi {2}: ",a ,b ,c);
        }
        
        public static int  Oduzimanje(int a, int b, out int c)
         {
             c = a - b;
             Console.WriteLine("Oduzimanje brojeva {0} i {1} iznosi {2}: ",a ,b ,c);
         }
        
        [STAThread]
        static void Main(string[] args)
        {
            int a,b,c;
            Console.WriteLine("********************************************");
            Console.WriteLine("***************Unesi 2 broja****************");
            Console.WriteLine("********************************************");
            string temp1 = Console.ReadLine();
            string temp2 = Console.ReadLine();
            a = Int32.Parse(temp1);
            b = Int32.Parse(temp2);
            Console.WriteLine("********************");
            Console.WriteLine("*Izaberi operaciju:*");
            Console.WriteLine("*  1. Sabiranje    *");
            Console.WriteLine("*  2. Oduzimanje   *");
            Console.WriteLine("*  3. Mnozenje     *");
            Console.WriteLine("*  4. Deljenje     *");
            Console.WriteLine("********************");
            string op = Console.ReadLine();
            switch(op)
            {
                case "1":
                    Racunanje.Sabiranje(a, b, out c);
                    break;
                case "2":
                    Racunanje.Oduzimanje(a, b, out c);
                    break;
                case "3":
                    Racunanje.Mnozenje(a, b, out c);
                    break;
                case "4":
                    Racunanje.Deljenje(a, b, out c);
                    break;
            }




        }
    }
}



 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 17:32 - pre 240 meseci
Dobro, razumljivo, ovde dobijaš grešku u svakoj od četiri metode.

To je zato što si metode deklarisao kao public static int, a nigde u telu metode nemaš return.

ili promeni tip metode u public static void ili promeni telo metode:

Code:

public static int Deljenje(int a, int b)
{
   int c = a / b;
   Console.WriteLine("Deljenje brojeva {0} i {1} iznosi {2}: ",a ,b ,c);
   return c;
}

i tako za svaku operaciju.

void je specijalan tip, zapravo nepostojeći tip, i označava da funkcija/metoda ne vraća nikakvu vrednost (izuzimajući out i ref parametre), pa shodno tome kompajler ne zahteva (niti trpi) postojanje return-a.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

ZokiR
Zoran Radojković
Melburn, Australija

Član broj: 15986
Poruke: 109
*.vic.bigpond.net.au



Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?14.06.2004. u 06:57 - pre 240 meseci
Citat:
mmix: void je specijalan tip, zapravo nepostojeći tip, i označava da funkcija/metoda ne vraća nikakvu vrednost (izuzimajući out i ref parametre), pa shodno tome kompajler ne zahteva (niti trpi) postojanje return-a.
Ne zahteva, ali „trpi” . Izlaz iz void funkcija korišćenjem return-a je sasvim legalan, bar što se kompajlera tiče.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?14.06.2004. u 10:15 - pre 240 meseci
Priznajem ispravku, moja greška, nisam se dobro izrazio misleći na return sa nekom vrednošću, npr return 0; ili return c;
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: Moze neko da objasni VOID i metode koje vracaju vrednost?

[ Pregleda: 5098 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.