C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18
Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 2 / 18
Object System névtér Osztály hierarchia gyökere Alacsony szint metódusok Öröklődés Metódus felüldefiniálás Metódusok Equals Finalize GetHashCode GetType MemberwiseClone ReferenceEquals ToString Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 3 / 18
Objektumok összehasonlítása Equals(Object obj) bool Példány szintű statikus Equals(Object, Object) Saját egyezőség vizsgálat ReferenceEquals alapértelmezetten is operátor override bool Equals(Object obj){ if((obj is MyClass) == false) { return false; }... } Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 4 / 18
Destruktor Ellenőrzött megszüntetés Garbage collector Mikor? Alkalmazás Nyitott adatfolyamok Adatbázis kapcsolatok Log Nem lehet közvetlenül implementálni MyClass Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 5 / 18
Objektum típusok GetType() System.Type Típus deklarációt reprezentál Osztály Interface Tömb Érték Enumeráció... Reflection Adatok lekérdezése Típus Interface ek Ősosztály típusa Adattagok Konstruktorok Metódusok Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 6 / 18
Klónozás, ToString MemberwiseClone Shallow copy ToString String Objektumot reprezentálja GetHashCode Hash függvény Numerikus érték Objektum alapján Számos felhasználás Egyezőség tesztelése Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 7 / 18
Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 8 / 18
Boxing, Unboxing Minden objektum Érték típus objektum típus konverzió Cast olás Implicit boxing objetc o = 5; Explicit boxing int i = 5; object o = (object)i; Objektum típus érték típus konverzió Típus ellenőrzés Érték másolás InvalidCastException Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 9 / 18
Érték és Objektum Típusok 1. táblázat. Numerikus Típusok Érték byte double float int long Objektum Byte Double Single Int32 Int64 2. táblázat. Logikai és Szöveges Típusok Érték bool char string Objektum Boolean Char String Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 10 / 18
Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 11 / 18
String Referencia típus Érték alapú összehasonlítás @ operátor kvótázás Escape szekvenciák string path1 = @"C:\myFile.txt"; string path2 = "C:\\myFile.txt"; Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 12 / 18
Műveletek Copy Remove Replace Split Trim StartsWith EndsWith Substring ToUpper ToLower Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 13 / 18
Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 14 / 18
Regular Expression Szövegfeldolgozás Minta illesztés Egyszerű struktúra Szöveg = karakterlánc Szövegrészek Számosság [A Z]{3} [0 9]{3}.*\. txt$ Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 15 / 18
Wildcards Előre nem ismert karakterek Speciális karakterek. tetszőleges karakter \n újsor \d számjegy \w szó \s fehér karakter string eleje $ string vége Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 16 / 18
Blokkok, Számosság Blokk Karakter halmaz [] Egységként kezelt Tetszőleges választás Intervallum is megadható Számosság Egyszer? 0 vagy 1 + 1 vagy több * 0 vagy több {n} pontosan n {n,m} legalább n, maximum m Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 17 / 18
Regex Osztály Text.RegularExpressions névtér Regex osztály Fix reguláris kifejezést reprezentál IsMatch(String) Replace(String,String) string input = "a string"; string pattern = "\\s+"; string replacement = " "; Regex rgx = new Regex(pattern); string result = rgx.replace(input, replacement); Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 18 / 18