static void Main(string[] args) { //Tässä luodaan robotti-olio. Robotti robotti = new Robotti(); //Tässä määritellään robotin pyörimiskulma. double pyorimisKulma = Math.PI / 3; int aloitusPisteX = 10, aloitusPisteY = 30; int lopetusPisteX = 450, lopetusPisteY = 320; robotti.Aloita(); //Tässä kutsutaan IAlustus-liittymän //metodi AsetaAloitusPiste(), joka periytyy //luokkaan Robotti liittymän IRobotti kautta. robotti.AsetaAloitusPiste(aloitusPisteX, aloitusPisteY); //Tässä kutsutaan liittymän IPyori metodi Pyori(), //joka periytyy luokkaan Robotti liittymän IRobotti //kautta. robotti.Pyori(pyorimisKulma); //Tässä kutsutaan liittymän IAlustus //metodi AsetaLopetusPiste(), joka periytyy luokkaan //Robotti liittymän IRobotti kautta. robotti.AsetaLopetusPiste(lopetusPisteX, lopetusPisteY); robotti.Lopeta(); }
static void Main(string[] args) { //Tässä luodaan robotti-olio. Robotti robotti = new Robotti(); //Seuraavassa alustetaan robotti-olio. robotti.AsetaAloitusPiste(0, 0); robotti.AsetaLopetusPiste(30, 45); //Tässä kutsutaan RobottiToiminnassa property Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); robotti.Aloita(); Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); robotti.Lopeta(); Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); //Tässä kutsutaan Laskematka(), joka on periytynyt //Matka luokasta. Console.WriteLine("Robotin kuljettama matka: {0,7:f2} cm ", robotti.Laskematka()); }
static void Main(string[] args) { //Tässä luodaan robotti olio. Robotti robotti = new Robotti(); //Tässä kutsutaan IVideoKamera liittymän Aloita() //metodi. robotti.Aloita(); //Tässä kutsutaan IVideoKamera liittymän Lopeta() //metodi. robotti.Lopeta(); //Koska IRobotti liittymän metodit toteutettiin //eksplisiittisesti, robotti olio pitää ensin muuntaa //IRobotti liittymäksi, minkä jälkeen pystytään //kutsumaan IRobotti liittymän metodit. IRobotti iRobotti = robotti as IRobotti; //Tässä kutsutaan IRobotti liittymän Aloita() metodi. iRobotti.Aloita(); //Tässä kutsutaan IRobotti liittymän RobottiToiminnassa //property. Huomaa, että koska Robotti luokassa on vain //yksi RobottiToiminnassa property, se voidaan kutsua //myös robotti olion kautta seuraavasti: //Console.WriteLine("Robotti on toiminnassa: " + //robotti.RobottiToiminnassa); Console.WriteLine("Robotti on toiminnassa: " + iRobotti.RobottiToiminnassa); //Tässä kutsutaan IRobotti liittymän Lopeta() metodi. iRobotti.Lopeta(); }
static void Main(string[] args) { //Tässä luodaan robotti-olio. Robotti robotti = new Robotti(); //Seuraavassa alustetaan robotti-olio. robotti.AsetaAloitusPiste(10, 5); robotti.AsetaLopetusPiste(54, 98); //Tässä kutsutaan RobottiToiminnassa property Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); robotti.Aloita(); Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); robotti.Lopeta(); Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); //Tässä kutsutaan Laskematka(), joka on periytynyt //Matka luokasta. Console.WriteLine("Robotin kuljettama matka: {0,7:f2} cm ", robotti.Laskematka()); Console.WriteLine("Tyyppimuunnos liittymaan"); //Tyyppimuunnos liittymään IRobotti iRobotti = (IRobotti)robotti; //Liittymäksi muunnetulla oliolla voidaan viitata vain liittymässä esiintyviin jäseniin iRobotti.Aloita(); iRobotti.Lopeta(); // mutta ei olion roboti luokassa oleviin muihin jäseniin. // kuten iRobotti.maara, vain robotti.maara Console.WriteLine("Maara: " + robotti.maara); // is-operaattori if (robotti is IRobotti) { System.Console.WriteLine("robotti-olio tukee IRobotti liittymaan"); } else { System.Console.WriteLine("robotti-olio ei tue IRobotti liittymaan"); } }
static void Main(string[] args) { //Tässä luodaan robotti-olio. Robotti robotti = new Robotti(); //Seuraavassa alustetaan robotti-olio. robotti.AsetaAloitusPiste(10, 5); robotti.AsetaLopetusPiste(54, 98); //Tässä kutsutaan RobottiToiminnassa –property. Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); robotti.Aloita(); Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); robotti.Lopeta(); Console.WriteLine("Robotti on toiminnassa: " + robotti.RobottiToiminnassa); //Tässä kutsutaan robotin Matka-property. Console.WriteLine("Robotin kuljettama matka: {0,7:f2} cm ", robotti.Matka); // tarkistetaam tukeeko olion luokka tiettyä liittymää if (robotti is IRobotti) { System.Console.WriteLine("robotti-olio tukee IRobotti liittymaa"); } else { System.Console.WriteLine("robotti-olio ei tue IRobotti liittymaa"); } //Tässä tyyppimuunnos liittymään. IRobotti iRobotti = (IRobotti)robotti; //Tämän jälkeen iRobotti olion kautta voidaan kutsua liittymän IRobotti jäsenet iRobotti.Aloita(); Console.WriteLine("Robotti on toiminnassa: " + iRobotti.RobottiToiminnassa); }
static void Main(string[] args) { //Tässä luodaan robotti-olio. Robotti robotti = new Robotti(); //Tässä tarkisteen tukeeko robotti IRobotti liittymää. if (robotti is IRobotti) { Console.WriteLine("robotti-olio tukee liittymää IRobotti"); } else { Console.WriteLine("robotti-olio ei tue liittymää IRobotti "); } //Tässä tarkisteen tukeeko robotti IPyori liittymää. if (robotti is IPyori) { Console.WriteLine("robotti-olio tukee liittymaa IPyori "); } else { Console.WriteLine("robotti-olio ei tue liittymaa IPyori "); } //Tässä yritetään muuntaa robotti IPyori-tyypiseksi. IPyori iPyoriRobotti = robotti as IPyori; if (iPyoriRobotti != null) { //Jos iPyoriRobotti ei ole null, IPyori-liittymästä //periytyvä Pyori()-metodi kutsutaan. iPyoriRobotti.Pyori(45.0); } else { Console.WriteLine("robotti-oliota ei voi muuntaa iPyoriRobotti:ksi"); //Jos luokka tukee liittymää, as-operaattori suorittaa tyyppimuunnoksen //ja muuten se palauttaa null-arvon. } }
static void Main(string[] args) { //Tässä luodaan robotti-olio. Robotti robotti = new Robotti(); //Tässä kutsutaan liittymän IVideoKamera //metodi Aloita(). robotti.Aloita(); //Koska liittymän IRobotti metodit toteutettiin //eksplisiittisesti, robotti-olio pitää ensin muuntaa //IRobotti-tyyppiseksi, minkä jälkeen liittymästä //IRobotti periytyvät metodit pystytään kutsumaan. IRobotti iRobotti = robotti as IRobotti; //Tässä kutsutaan liittymästä IRobotti periytyvä //metodi Aloita(). iRobotti.Aloita(); //Tässä kutsutaan liittymästä IVideoKamera periytyvä //metodi Lopeta(). robotti.Lopeta(); }