Newer
Older
using System;
/// @author Vesa Lappalainen
/// @version 26.10.2012
/// <summary>
/// Tutkitaan muuttujinen näkyvyyttä
/// </summary>
public class MuuttujienNakyvyys
{
/// <summary>
/// Missä pääohjelman muuttujat näkyvät
/// </summary>
/// <param name="args">ei käytössä</param>
public static void Main(string[] args)
{
int luku = 9; // Näkyy vain pääohjelmassa
double d = 5.5; // Näkyy vain pääohjelmassa
int[] luvut = { 1, 2, 3 }; // Näkyy vain pääohjelmassa, mutta viitteen kautta aliohjelmakin voi muuttaa
Muuta(luvut, 2, luku);
{ // apulohko, jossa omia muuttujia
int uusi = 3; // muuttuja joka näkyy vain tässä lohkossa
Console.WriteLine(uusi);
} // nyt uusi-muuttuja lakkaa olemasta
// Täytetään taulukkoa
int edellinen = 0;
for (int i = 0; i < luvut.Length; i++)
{
int nyt = luvut[i]; // on olemassa silmukan sisällä
int iso = 3 * nyt; // on olemassa silmukan sisällä
luvut[i] += iso;
edellinen = nyt + luku; // silmukan ulkopuolella määritelty muuttuja
}
}
/// <summary>
/// Laitetaan taulukon luvut paikkaan uusi luku
/// </summary>
/// <param name="luvut">taulukko jota muutetaan, aliohjelman oma viite, mutta viitteen kautta voi muuttaa myös kutsuvan ohjelman taulukkoa</param>
/// <param name="paikka">paikka jota muutetaan, näkyy vain aliohjelmassa, muuttaminen ei vaikuta kutsuvaan ohjelmaan</param>
/// <param name="luku">uusi arvo, näkyy vain aliohjelmassa, sama nimi ei haittaa, muuttaminen ei vaikuta kutsuvaan ohjelmaan</param>
public static void Muuta(int[] luvut, int paikka, int luku)
{
luvut[paikka] = luku; // viitteen ansiosta pääohjelman taulukko muuttui
paikka--; // ei vaikuta pääohjelmaan
int uusiarvo; // aliohjelman lokaali muuttuja
uusiarvo = luku + 3;
luvut[paikka] = uusiarvo; // muuttaa pääohjelman taulukkoa
luku = 12; // ei vaikuta pääohjelmaan
}
}