Sbyte ............................................................................................................................................................................. 6 Byte ............................................................................................................................................................................... 6 Short .............................................................................................................................................................................. 6 Ushort............................................................................................................................................................................ 6 Int .................................................................................................................................................................................. 6 Uint ............................................................................................................................................................................... 6 Long .............................................................................................................................................................................. 6 Ulong ............................................................................................................................................................................ 6
2.5.2. 2.5.3. 2.5.4.
Bool Típus .................................................................................................................................. 6 Char Típus .................................................................................................................................. 6 Lebegőpontos Típus .................................................................................................................... 6
Struct Típus................................................................................................................................. 6 Enum Típus ................................................................................................................................. 7 Object Típus ............................................................................................................................... 7 Class Típus ................................................................................................................................. 7 Interface ..................................................................................................................................... 7 Delegates .................................................................................................................................... 8 String Típus ................................................................................................................................ 8 Tömbök ....................................................................................................................................... 8 Boxing és Unboxing.................................................................................................................... 8
Class .......................................................................................................................................... 8
2.6.1. 2.6.2.
Constructor és destructor ........................................................................................................... 8 Metódusok .................................................................................................................................. 9
In Paraméterek .............................................................................................................................................................. 9 Ref Paraméterek ............................................................................................................................................................ 9 Out Paraméterek ............................................................................................................................................................ 9 Override ........................................................................................................................................................................ 9 Hide............................................................................................................................................................................... 9
2.6.3. 2.6.4. 2.6.5. 2.6.6. 2.6.7.
Példa Class ............................................................................................................................... 10 Class Property-k és Indexer-k .................................................................................................. 10 Attribútumok ............................................................................................................................. 11 Event ......................................................................................................................................... 11 Modifikátorok alkalmazása ...................................................................................................... 12
Class Modifikátorok .................................................................................................................................................... 12 Member Modifikátorok ............................................................................................................................................... 12 Access Modifikátorok ................................................................................................................................................. 12
For Kulcsszó ............................................................................................................................................................... 14 Foreach Kulcsszó ....................................................................................................................................................... 14 While Kulcsszó............................................................................................................................................................ 14 Do Kulcsszó ................................................................................................................................................................ 14
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. 2.7.3.
Egyéb kulcsszavak .................................................................................................................... 14
Kivétel Throwing és Re-Throwing ............................................................................................ 16
Standard Kivételek ...................................................................................................................................................... 16 Throwing ..................................................................................................................................................................... 16 Re-Throwing ............................................................................................................................................................... 16
2.8.4. 2.8.5.
Saját Exception Class ............................................................................................................... 16 Mit szabad és mit nem — Kivétel Kezelés ................................................................................ 17
Komponens építése ................................................................................................................... 18 Megfelelő kliens elkészítése ...................................................................................................... 18 Komponens építése ................................................................................................................... 19 Megfelelő kliens elkészítése ...................................................................................................... 20
Configuration és Deployment ................................................................................................. 20
Ismert dimenzió, lehet többszörös is Alsó határ: 0
Típusok
Abstract vagy sealed Nulla vagy több interface Egyszeres öröklődés Overriding és hiding létezik Fields, methods, events, types Constructors Belső láthatóság
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. Öröklődés: System.ValueType / System.Enum
Típus members
Hide vagy override Argument és return type CLS Constructor, metódus, property felülírható Abstract members
Metódusok
Static, virtual, instance Final vagy nem Final
Mezők
Static vagy nonstatic
Property-k
Get és Set metódusok Indexelhető
Enumerations
Byte, short, int, long Nincs interface
Kivételek
Throw és catch, finalize COM Exceptions
Interface-k
Öröklődés
Events
Add és Remove metódusok Öröklődik: System.Delegate
Delegates
Created és Invoked
Identifiers
Nincs case sensitivity!
2.4. A “Hello World” Kód Using System; Class HelloWorld { public static int Main(string[] args) { Console.WriteLine(“Hello Világ!”); } } Using System; Class InputOutput { public static void Main() { Console.Write(“Név ?”); String strName = Console.ReadLine(); Console.Write(“Hello ” + strName); Console.Write(“Hello {0}”, strName); } } Részletes, futó kódok a Komponensek építése részben találhatóak (3.1 és 3.2)
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot.
2.5. Típusok 2.5.1. Megszámlálható Típusok Sbyte Byte Short Ushort Int Uint Long Ulong
8 bit signed 8 bit unsigned 16 bit signed 16 bit unsigned 32 bit signed 32 bit unsigned 64 bit signed 64 bit unsigned
2.5.7. Enum Típus enum MonthNames { January, February, March, April }; enum MonthNames { January=1, February, March, April }; enum MonthNames { January=31, February=28, March=31, April=30 }; enum MonthNames : byte { January, February, March, April }; 0-val indul, típusa int. Lehetséges típusok: long, int, short, byte
2.5.8. Object Típus Alapclass az összes típushoz. Object theObj = 123;
2.5.9. Class Típus Lásd Class Modifikátorok (2.6.7)
2.5.10.
Interface
Interface Iface { void ShowMyFace(); int a {get;set} } class Cface:Iface { public void ShowMyFace() { // Implementation } int a { // Implementation } } class Test
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. { public static void Main() { Cface myFace = new CFace(); Iface myIFace = (IFace)CFace; } }
2.6. Class 2.6.1. Constructor és destructor // default constructor class TestClass { public TestClass(): base {} // default }
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. // parameterized constructor class TestClass { public TestClass(string strName, int nAge) { ... } public ~TestClass() { Release(); } // destructor, called by GC ! public Release() { ... } // call it by hand }
2.6.2. Metódusok In Paraméterek public int Square(int n) { ... } Console.WriteLine(Square(25)); // object always pass a reference by value
Ref Paraméterek void Square(ref int n) { ... } int n = 20; // init Square(ref n); Console.WriteLine(n);
Out Paraméterek void Square(int n, out int nn) { ... } int n; // noninit Square(20, out n); Console.WriteLine(n);
Override class Triangle { public virtual { } }
double Area(int a, int b, int c)
class RightTriangle:Triangle { public override double Area(int a, int b, int c) { return(base.Area(a, b, c)); } } class Test { public static void Main() { RightTriangle Instance = new RightTriangle(); Console.WriteLine(((Triangle)Instance).Area(3,4,7)); } }
Hide class Triangle { public double Area(int a, int b, int c) { } } class RightTriangle:Triangle { new public double Area(int a, int b, int c)
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. { return(base.Area(a, b, c)); } } class Test { public static void Main() { RightTriangle Instance = new RightTriangle(); Console.WriteLine(((Triangle)Instance).Area(3,4,7)); } }
2.6.3. Példa Class Public class Person : IPersonAge { private int YOB; public Person() { } public int YearOfBirth { get { return YOB; }; set { YOB = value; }; } public int GetAgeToday() { return Today()YearOfBirth }; }
2.6.4. Class Property-k és Indexer-k Public class House { private int m_myInt; private int[] m_myIntArray; public int myInt { get { return m_myInt; } set { m_myInt = value; } } public int this[int nIndex] { get { return m_myIntArray[nIndex]; } } } class Test { public static void Main() {
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. House myHouse = new House(); myHouse.myInt = 100; Console.WriteLine(myHouse.myInt); Console.WriteLine(myHouse[0]); } }
2.6.6. Event // forward declaration with delegation public delegate void EventHandler(string strText); class EventSource { public event EventHandler TextOut; public void TriggerEvent() { if (TextOut != null) TextOut("Triggered"); } } class TestApp { public static void Main() { EventSource evsrc = new EventSource(); evsrc.TextOut += new EventHandler(CatchEvent); evsrc.TriggerEvent(); evsrc.TextOut -= new EventHandler(CatchEvent); evsrc.TriggerEvent(); TestApp theApp = new TestApp(); evsrc.TextOut += new EventHandler(theApp.InstanceCatch); evsrc.TriggerEvent(); } public static void CacthEvent(string strText) {
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. Console.WriteLine(strText); } public void InstanceCatch(string strText) { Console.WriteLine("Instance " + strText); } }
2.6.7. Modifikátorok alkalmazása Class Modifikátorok
Abstract
Nem lehet instace-t csinálni, implementálni kell az abstract metódusokat
Sealed
Nem lehet örökölni
abstract class AbstractClass { abstract public void MyMethod(); } sealed class DerivedClass : AbstractClass { public override void MyMethod() { Console.Writeline("sealed"); } } public class TestApp { public static void Main() { DerivedClass dc = new DerivedClass(); dc.MyMethod(); } }
Member Modifikátorok
Abstract
Method és accessor
Const
Field és local variable
Event
Field és property
Class eseményeihez kliens kód hozzákötése
Extern
Method
Külső implementáció
Override
Method és accessor
Módósítani egy abstract definiálású elemet
Readonly
Field
Csak deklaráció és contstructor változtathatja meg
Static
Field, method, A Class-hoz és nem az instance-hez tartozik property, operator és constructor
Virtual
Method és accessor
Nem tartalmaz implementációt. Implikálisan virtual, és öröklődéskor meg kell adni az override Kulcsszót. Nem tartalmazhat referenciát, fordítási időben kiértékelődik
Öröklődéssel felülírható
Access Modifikátorok
Public
Mindenhonnan elérhető
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot.
Protected
A Classból és minden származottból
Private
Csak a Classból, leszármazottból sem
Internal
Ugyanabból az applikációból
2.7. Vezérlő Kulcsszavak 2.7.1. Szelekciós Kulcsszavak If Kulcsszó class NestedIfApp { public static int Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Usage: one argument"); return 1; } char chLetter = args[0][0]; if (chLetter >= 'A') if (chLetter <= 'Z') { Console.WriteLine("{0} is uppercase",chLetter); Return 0; } chLetter = Char.FromString(args[0]); if (chLetter >= 'a' && chLetter <= 'z') Console.WriteLine('{0} is lowercase",chLetter); if (Char.IsDigit((chLetter = args[0][0]))) Console.WriteLine('{0} is digit",chLetter); return 0; } }
Switch Kulcsszó switch (nInt) { case 6: // something // won't drop to case 1, coz there is code at case 6 case 1: break; default: // code case 7: case 2: // here 7 will drop to 2, coz there is no code at case 7 goto case 3; // this line is unreachable case 4: goto default; } String is használható !
Hiba! A(z) Heading 1 itt megjelenítendő szövegre történő alkalmazásához használja a Kezdőlap lapot. 2.7.2. Iterációs Kulcsszavak For Kulcsszó for (initializer; condition; iterator) { if (condition1) { continue; // next iteration } // code if (condition2) { break; // terminate loop } // code }
Foreach Kulcsszó // foreach (Type identifier in expression) { ... } class EnviromentDumpApp { public static void Main() { Idictionary envvars = Environment.GetEnvironmentVariables(); Console.WriteLine("Count: {0}", envvars.Keys.Count); Foreach (String strKey in envvars.Keys) { Console.WriteLine("{0} = {1}", strKey, envvars[strKey].ToString()); } } } // Implements IEnumerable with GetEnumerator() Point[] Points = GetPoints(); foreach( Point p in Points ) { MyPen.MoveTo(Point.x,Point.y); }
While Kulcsszó while (conditional) { ... }
Do Kulcsszó do { embedded statements } while (condition);