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

Pomoc oko ref och swap

[es] :: .NET :: Pomoc oko ref och swap

[ Pregleda: 1902 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Vinona

Član broj: 160794
Poruke: 16
*.bredband.comhem.se.



Profil

icon Pomoc oko ref och swap16.03.2008. u 13:57 - pre 179 meseci

Moze neko da mi objasni ref i swap u c#. Ja sam pocetnik i ove dve stvari mi nisu bas najjasnije. Npr: Zasto se ovde ispisuju 323 ,121 i 123.

Code:

class Program
{
static void Main(string[] args)
{
int x = 3;
int y = 2;
int z = 1;
Sort(x,y,ref z);
Console.WriteLine("x = {0}, y = {1}, z = {2}",x,y,z);
Console.ReadKey();
x = 3;
y = 2;
z = 1;
Sort(ref x, ref y, z);
Console.WriteLine("x ={0}, y = {1}, z = {2}",x,y,z);
Console.ReadKey();
x = 3;
y = 2;
z = 1;
Sort(ref x, ref y, ref z);
Console.WriteLine("x = {0}, y = {1}, z = {2}",x,y,z);
Console.ReadKey();
}
static void Sort(ref int a, ref int b, ref int c)
{
if (a > b)
Swap(ref a, ref b);
if (a > c)
Swap(ref a, ref c);
if (b > c)
Swap(ref b, ref c);


}
static void Sort(ref int a, ref int b, int c)
{
if (a > b)
Swap(ref a, ref b);
if (a > c)
Swap(ref a, ref c);
if (b > c)
Swap(ref b, ref c);
}
static void Sort(int a, int b, ref int c)
{
if (a > b)
Swap(ref a, ref b);
if (a > c)
Swap(ref a, ref c);
if (b > c)
Swap(ref b, ref c);
}
static void Swap(ref int a, ref int b)
{
int tmp = a;
a = b;
b = tmp;


Console.ReadKey();
}
}
}
 
Odgovor na temu

artriba
Split

Član broj: 158342
Poruke: 109
*.adsl.net.t-com.hr.



Profil

icon Re: Pomoc oko ref och swap17.03.2008. u 12:49 - pre 179 meseci
Ukratko:
Kod prvog sorta Sort ( x, y, ref z ); samo se z prenosi referentno tako da će nakon metodu Swap() u Mainu će samo biti vidljiv zadnji sortirani element z = 3 dok će x, y ostati na svojim vrijednostima, analogno tome i Sort ( ref x, ref y, z ); sortira samo x,y dok z otaje na 1 dok Sort ( ref x, ref y, ref z ); sortira sve elemente. Ovo je i primjer overloadinga funkcija, postoje tri funkcije Sort koje se pozivaju u različitom kontekstu.


Code:
    static void Swap ( ref int a, ref int b )
    {
        int tmp = a;//temp ima vrijednost a
        a = b;//a ima vrijdnost b
        b = tmp;// b ima vrijednost temp odnosno a
        // zamijena a<->b
    }
 
Odgovor na temu

Vinona

Član broj: 160794
Poruke: 16
*.bredband.comhem.se.



Profil

icon Re: Pomoc oko ref och swap17.03.2008. u 22:06 - pre 179 meseci
Hvala
 
Odgovor na temu

[es] :: .NET :: Pomoc oko ref och swap

[ Pregleda: 1902 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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