C# ja.net. Juha Järvensivu 2007

Samankaltaiset tiedostot
.NET ajoympäristö. Juha Järvensivu 2007

Valikot ja työkalupalkit. 2008

Web Services tietokantaohjelmoinnin perusteet

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Dialogit. Juha Järvensivu 2007

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Olio-ohjelmointi Syntaksikokoelma

Rajapinta (interface)

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19

C# ja oliot. Santtu Viitanen Niko Mononen Jyri Leinonen

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

5 Näppäimistö. 5.1 Näppäimistön eventit

15. Ohjelmoinnin tekniikkaa 15.1

4. Luokan testaus ja käyttö olion kautta 4.1

Graafisen käyttöliittymän ohjelmointi

Attribuutit. Copyright IT Press Tämän e-kirjan kopiointi, tulostaminen ja jakeleminen eteenpäin luvatta on kielletty.

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Delegaatit ja tapahtumakäsittelijät

Suunnittelumalleja, MVC. Juha Järvensivu 2008

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Dialogit. Juha Järvensivu 2008

15. Ohjelmoinnin tekniikkaa 15.1

TIE Ohjelmistojen suunnittelu. Luento 8..9: moniperintä

Rinnakkaisuus (.NET) Juha Järvensivu 2007

...ii...iii...x. 1 Silverlight NET Framework for Silverlight Silverlight Silverlight. 2-1 Visual Studio Silverlight...

Sarjallistaminen. Juha Järvensivu 2007

Qt perusteet. Juha-Matti Vanhatupa. (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia)

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

4. Olio-ohjelmoinista lyhyesti 4.1

Asynkroninen ohjelmointi.net 4.5 versiolla

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Leikepöydän käyttö.net ja QT. Juha Järvensivu 2008

QT tyylit. Juha Järvensivu 2008

Metodien tekeminen Javalla

Java kahdessa tunnissa. Jyry Suvilehto

815338A Ohjelmointikielten periaatteet

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Ohjelmointi 1 C#, kevät 2013,

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

Common Language Runtime

QT model view. Juha Järvensivu 2008

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

2. Olio-ohjelmoinista lyhyesti 2.1

C#-luokkien perusteet

T Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen

10 Lock Lock-lause

9. Periytyminen Javassa 9.1

7. Oliot ja viitteet 7.1

Ohjelmoinnin jatkokurssi, kurssikoe

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

A TIETORAKENTEET JA ALGORITMIT

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Javan perusteita. Janne Käki

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

Luokan sisällä on lista

Sisällysluettelo. Johdanto Dot NET Microsoft.NET -alusta Käyttäjämallit Ohjelmien kehitys.net-alustalla...

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

TIE Principles of Programming Languages CEYLON

Graafisen käyttöliittymän ohjelmointi Syksy 2013

1 Tehtävän kuvaus ja analysointi

18. Abstraktit tietotyypit 18.1

1. Olio-ohjelmointi 1.1

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Microsoft Visual J++ ohjelmointiympäristö

9. Periytyminen Javassa 9.1

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

2010-luvun kansalaistaito: Windows-puhelimen ohjelmointi. Kai Lindgren, Teollinen tuotanto/metropolia

16. Javan omat luokat 16.1

Listarakenne (ArrayList-luokka)

XNA grafiikka laajennus opas. Paavo Räisänen. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

Mikä yhteyssuhde on?

T Henkilökohtainen harjoitus: FASTAXON

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Ohjelmointi 2 / 2010 Välikoe / 26.3

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen

Ohjelmoinnin peruskurssien laaja oppimäärä

C# olio-ohjelmointi perusopas

Rajapinnat ja olioiden välittäminen

815338A Ohjelmointikielten periaatteet

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

Java UI-komponentit (JTable) Juha Järvensivu 2007

P e d a c o d e ohjelmointikoulutus verkossa

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi

JAVA-OHJELMOINTI 3 op A274615

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Transkriptio:

C# ja.net Juha Järvensivu juha.jarvensivu@tut.fi 2007

Sisältö C#.NET-kirjastot

C# - C-sharp Standardoitu kieli (2003) Kieli, jossa pyritään yhdistämään C++:n tehokkuus ja Javan helppokäyttöisyys Suunniteltu.NET-ohjelmointiin Standard ECMA-334 C# Language Specification

C#:n ja Java Virtuaalikone (välikoodi) Automaattinen roskienkeruu Kaikilla luokilla yhteinen kantaluokka (object) Rajapinnat Ei moniperintää Ei otsikkotiedostoja

C# ja C++ Perustietotyypit Enumit Virtual avainsana class!= struct Mahdollisuus osoittimien käyttöön Syntaksi saman kaltaista

C# - tyyppijärjestelmä

Boxing Myös value-tyyppejä voidaan käsitellä kuten reference-tyyppejä // Make a simple value data point short s = 25; // Box the value into an object reference object objshort = s;

Boxing ArrayList mylist = new ArrayList(); // Automatic boxing int mylist.add(23); // OK unbox first item int item = (int)mylist[0]; // ERROR System.InvalidCastException: // Unable to cast object of type 'System.Int32 // to type 'System.String'. string item = (string)mylist[0];

Property

Viime viikon esimerkistä: void textbox1_textchanged(object sender, EventArgs e) button1.enabled = (textbox1.text!= " " ) && (textbox2.text!= " ");

Property (Ominaisuus) class MyClass int myvalue = 0; MyClass myclass = new MyClass(); int value = myclass.value; public int Value set myvalue = value; get return myvalue; myclass.value = 2;

Testi for(int i = 0; i < Int32.MaxValue; i++) // päivitä muuttujan arvo Debug: Muuttuja : 19.832s Set-funktio : 35.995s Property : 36.182s Release: Muuttuja : 5.548s Property : 5.564s Set-funktio : 5.532s

Delegaatti

Viime viikon esimerkistä: this.textbox1.keypress += new KeyPressEventHandler(onlyNumber); void onlynumber(object sender, KeyPressEventArgs e) if (!char.isdigit(e.keychar)) e.handled = true;

Delegaatti-mekanismi referenssityyppi, joka voi osoittaa useaan metodiin samanaikaisesti Metodiosoitin Delegaatti D Metodit A B C

Delegaatin esittely public class MyClass // Delegaatin esittely public delegate void MyDelegate(); // Delegaatin luonti MyDelegate delegatemember;

Kuuntelijan rekisteröinti delegaattiin MyClass c1; c1.delegatemember += new MyDelegate(myHandler); void myhandler() // TODO: add implementation here

Delegaatin kutsuminen - Kuten tavallinen funktiokutsu - Funktiokutsu välitetään kaikille rekisteröityneille kuuntelijoille MyClass::FunctionX() this.mydelegate( );

Event

eventin esittely public class MyClass // Delegaatin esittely public delegate void MyEvent(object sender, EventData eventdata); // eventin luonti event MyEvent EventMember;

event Määre, joka muuttaa delegaatin käyttäytymistä 1. voidaan sisällyttää rajapintaluokkiin (reference tyyppi) 2. voidaan kutsua vain luokasta, jonka jäsenmuuttujana muuttuja on. 3. luokan ulkopuolelta vain metodien lisäys ja poisto += ja -= operaatioilla

Kuuntelijan rekisteröinti eventtiin MyClass c1; c1.eventmember += new MyEvent(myHandler); void myhandler(object sender, EventData eventdata) // TODO: add implementation here

Eventin kutsuminen MyClass::FunctionX() onmyevent(new EventData); protected void MyClass:: OnMyEvent(EventArgs e) if (EventMember!= null) EventMember(this, e);

Perintä class abstract MyBaseClass virtual void Func1() abstract void Func2(); // Voidaan ylimääritellä // Täytyy ylimääritellä class MyClass : MyBaseClass override void FuncX() // Ylimääritellään sealed override void FuncX() // Ei voi ylimääritellä uudelleen

partial class Luokan koodi voidaan jakaa fyysisesti useampaan eri tiedostoon Käytetään muun UI-designerin generoiman koodin kapseloimiseksi omaan tiedostoon

Olion tyypin selvittäminen Avainsanan is avulla // determined if an object is compatible with // the string type if(obj is string)

.NET luokkakirjastot ISBN 0735615551

.NET kirjasto Ei sidottu tiettyyn ohjelmointikieleen // C# public void CreateMyForm() // Create a new instance of the form. Form form1 = new Form(); // Create two buttons Button button1 = new Button (); Button button2 = new Button (); // Set the text of button1 to "OK". button1.text = "OK"; // Visual Basic Public Sub CreateMyForm() ' Create a new instance of the form. Dim form1 As New Form() ' Create two buttons Dim button1 As New Button() Dim button2 As New Button() ' Set the text of button1 to "OK". button1.text = "OK"

.NET kirjasto XML Web Services Web Forms Windows Forms ASP.NET Data and XML Classes (ADO.NET) Base Class Libraries (BCL) Common Language Runtime (CLR)

Base Class Libraries (BCL) Peruskirjasto, joka käytettävissä kaikissa.netohjelmointikielissä C# int bool.net System.Int32 System.Boolean string System.String

System.Collections Sisältää rajapintoja ja säiliöluokkia (taulukko, lista hajautustaulu jne) mscorlib.dll Esimerkki: dynaaminen taulukko ArrayList mylist = new ArrayList(2); mylist.add( item1 ); mylist.add( item2 ); foreach(string s in mylist) Console.WriteLine(s);

System.Windows.Forms Käyttöliittymäkirjasto Control Käyttöliittymäelementtien kantaluokka Panel Sisältää UI-kontrollit User Control Toimii kantaluokka ohjelmoijan omille kontrolleille tyhjä kontrolli

System.Windows.Forms Component Control Common Dialog ToolTip UserControl Button Panel OpenFileDialog SaveFileDialog Forn

System.Drawing Sisältää pikseligrafiikan piirtoon tarvittavat luokat System.Drawing Brush, Font, Pen, Color, Size, Point... System.Drawing.Drawing2D Sisältää kehittyneempiä piirtofunktioita System.Drawing.Imaging Sisältää kehittyneempiä luokkia kuvien käsittelyyn System.Drawing.Text Sisältää kehittyneempiä luokkia tekstin piirtoon

.NET 1.0.NET 2.0 MenuStrip (ennen MainMenu) ToolStrip (ennen ToolBar) ToolStripButton, ToolStripProgressBar StatusStrip BackgroundWorker

Lähteet C++ FAQ for C++ programmers http://www.andymcm.com/csharpfaq.htm Boxing http://www.programmersheaven.com/articles/arun/boxing.htm Anonymous methods http://www.theserverside.net/tt/articles/showarticle.tss?id=anony mousmethods Events vs. Delegates http://blog.monstuff.com/archives/000040.html Eventit ja delegaatit (MSDN) http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpguide/html/cpconeventsdelegates.asp

Lähteet Delegates tutorial http://msdn.microsoft.com/library/default.asp?url=/library/enus/csref/html/vcwlkdelegatestutorial.asp Events tutorial http://msdn.microsoft.com/library/default.asp?url=/library/enus/csref/html/vcwlkeventstutorial.asp Base Framework Classes http://msdn.microsoft.com/netframework/programming/bcl/default. aspx System.Windows.Forms http://msdn.microsoft.com/library/default.asp?url=/library/enus/cpref/html/frlrfsystemwindowsforms.asp