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: 1532 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos Zobenica
Sombor / Beograd

Član broj: 13465
Poruke: 1068
195.178.35.*

ICQ: 177616268


Profil

icon Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 16:14

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...
13.06.2004. u 16:14 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 2408
193.203.9.*



Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 16:26
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.
▪ The quicker a phone is answered in sales, the slower it's answered in customer services - Brownridge's Law
▪ Democracy is a device that ensures we shall be governed no better than we deserve - George Bernard Shaw
▪ To err is human--and to blame it on a computer is even more so - Robert Orben
13.06.2004. u 16:26 

Milos Zobenica
Sombor / Beograd

Član broj: 13465
Poruke: 1068
195.178.35.*

ICQ: 177616268


Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 16:53
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;
            }




        }
    }
}



13.06.2004. u 16:53 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 2408
193.203.9.*



Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?13.06.2004. u 17:32
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.
▪ The quicker a phone is answered in sales, the slower it's answered in customer services - Brownridge's Law
▪ Democracy is a device that ensures we shall be governed no better than we deserve - George Bernard Shaw
▪ To err is human--and to blame it on a computer is even more so - Robert Orben
13.06.2004. u 17:32 

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
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.
14.06.2004. u 06:57 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 2408
217.24.20.*



Profil

icon Re: Moze neko da objasni VOID i metode koje vracaju vrednost?14.06.2004. u 10:15
Priznajem ispravku, moja greška, nisam se dobro izrazio misleći na return sa nekom vrednošću, npr return 0; ili return c;
▪ The quicker a phone is answered in sales, the slower it's answered in customer services - Brownridge's Law
▪ Democracy is a device that ensures we shall be governed no better than we deserve - George Bernard Shaw
▪ To err is human--and to blame it on a computer is even more so - Robert Orben
14.06.2004. u 10:15 

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

[ Pregleda: 1532 | Odgovora: 5 ]

Postavi temu Odgovori

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