source: esimerkit/2015k/live/live10/Olioviitteet/Olioviitteet.cs @ 1392

Revision 1081, 2.1 KB checked in by anlakane, 2 years ago (diff)

live09, live10

Line 
1using System;
2using System.Text;
3using System.Linq;
4using System.Collections.Generic;
5
6/// @author Antti-Jussi Lakanen
7/// @version 11.2.2015
8///
9/// <summary>
10/// Arvopohjaisen muuttujan ja viitemuuttujan
11/// eroja käsittelemässä.
12/// </summary>
13public class Olioviitteet
14{
15    /// <summary>
16    /// Alustukset ja aliohjelmakutsut.
17    /// </summary>
18    public static void Main()
19    {
20        int a = 3;
21        int b = 4;
22        Console.WriteLine("a: " + a); // 3
23        Console.WriteLine("b: " + b); // 4
24
25        int temp = a;
26        a = b;
27        b = temp;
28
29        Console.WriteLine("a: " + a); // 4
30        Console.WriteLine("b: " + b); // 3
31
32        Muuta(a, b); // Kutsu, jossa parametrina kaksi arvopohjaisen muuttujan arvoa
33
34        Console.WriteLine("a: " + a); // 4
35        Console.WriteLine("b: " + b); // 3
36
37        int[] luvut = new int[] { 4, 3 };
38        Console.WriteLine("luvut[0]: " + luvut[0]); // 4
39        Console.WriteLine("luvut[1]: " + luvut[1]); // 3
40
41        Muuta(luvut); // Kutsu jossa parametrina viitemuuttujan arvo
42        Console.WriteLine("luvut[0]: " + luvut[0]); // 3
43        Console.WriteLine("luvut[1]: " + luvut[1]); // 4
44    }
45
46    /// <summary>
47    /// Muutetaan taulukon kahden ensimmäisen alkion paikkaa keskenään.
48    /// Muutos näkyy myös siellä missä tätä aliohjelmaa kutsuttiin,
49    /// koska luvut-taulukko on olio, siis viitemuuttuja.
50    /// </summary>
51    /// <param name="luvut">Taulukko</param>
52    public static void Muuta(int[] luvut)
53    {
54        int temp = luvut[0];
55        luvut[0] = luvut[1];
56        luvut[1] = temp;
57    }
58
59    /// <summary>
60    /// "Yritetään" muuttaa kahden alkion paikkaa keskenään.
61    /// Muutos _ei_ näy siellä missä tätä aliohjelmaa kutsuttiin,
62    /// koska int-luvut ovat arvopohjaisia muuttujia.
63    /// </summary>
64    /// <param name="luku1">luku 1</param>
65    /// <param name="luku2">luku 2</param>
66    public static void Muuta(int luku1, int luku2)
67    {
68        int temp = luku1;
69        luku1 = luku2;
70        luku2 = temp;
71    }
72}
Note: See TracBrowser for help on using the repository browser.