Entwicklung der Programmiersprache C#

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Entwicklung der Programmiersprache C#"

Transkript

1 Language Day HDM 2015 Entwicklung der Programmiersprache C# Referent: Mikhail Orleanskiy, IT-Designers GmbH Stand: 6. November 2015 Eine Präsentation der IT-Designers Gruppe 1

2 C# 2.0 bis 5.0 C# 2.0 bis 5.0 Neu in C# 6.0 Eine Präsentation der IT-Designers Gruppe 2

3 C# 2.0 bis 5.0 /.NET C# 2.0 bis 5.0.NET Eine Präsentation der IT-Designers Gruppe 3

4 C# 2.0 bis 5.0 /.NET (2002) 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) 4.5 (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

5 C# 2.0 bis 5.0 /.NET (2002) Web Services verbessert ASP.NET verbessert.net für Mobile Geräte 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

6 C# 2.0 bis 5.0 /.NET Windows Forms deutlich verbessert ASP.NET deutlich verbessert Sicherheit (ACL, Data Protection...) Networking FTP, WS2.0, SMTP... Fusion 2.0 XSLT 64 Bit C# 2.0, Generics 1.0 (2002) Web Services verbessert ASP.NET verbessert.net für Mobile Geräte 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

7 C# 2.0 bis 5.0 /.NET Windows Communication Foundation Windows Forms deutlich verbessert Windows Presentation Foundation ASP.NET deutlich verbessert Workflow Foundation Sicherheit (ACL, Data Protection...) Windows CardSpace Networking FTP, WS2.0, SMTP... Fusion 2.0 XSLT 64 Bit C# 2.0, Generics 1.0 (2002) Web Services verbessert ASP.NET verbessert.net für Mobile Geräte 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

8 C# 2.0 bis 5.0 /.NET CLR Security verbessert (Vista Support) C# 3.0 LINQ Windows Communication Foundation Windows Forms deutlich verbessert Windows Presentation Foundation ASP.NET deutlich verbessert CLR Speed Improvements (Thread Pools etc.) Garbage Collector verbessert Workflow Foundation Sicherheit (ACL, Data Protection...) BCL (Basisklassen) neue Methoden Extensibility (System.Addin.*) Windows CardSpace Networking FTP, WS2.0, SMTP... Fusion 2.0 XSLT 64 Bit C# 2.0, Generics 1.0 (2002) Web Services verbessert ASP.NET verbessert.net für Mobile Geräte 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

9 C# 2.0 bis 5.0 /.NET Covariance and Contravariance in Generics Dynamic Language Runtime CLR Security verbessert (Vista Support) C# 3.0 LINQ Windows Communication Foundation Windows Forms deutlich verbessert Background Garbage Collection Code Contracts Windows Presentation Foundation ASP.NET deutlich verbessert CLR Speed Improvements (Thread Pools etc.) Managed Extensibility Framework Garbage Collector verbessert Workflow Foundation Sicherheit (ACL, Data Protection...) Parallel Computing (PLINQ) Memory-Mapped Files BCL (Basisklassen) neue Methoden Extensibility (System.Addin.*) Windows CardSpace Networking FTP, WS2.0, SMTP... Fusion 2.0 XSLT 64 Bit C# 2.0, Generics 1.0 (2002) Web Services verbessert ASP.NET verbessert.net für Mobile Geräte 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

10 C# 2.0 bis 5.0 /.NET WinRT / Windows 8 / Metro Parallel Computing (async / await) Covariance and Contravariance in Generics Dynamic Language Runtime CLR Security verbessert (Vista Support) C# 3.0 LINQ Windows Communication Foundation Windows Forms deutlich verbessert Background Garbage Collection Code Contracts Windows Presentation Foundation ASP.NET deutlich verbessert CLR Speed Improvements (Thread Pools etc.) Managed Extensibility Framework Garbage Collector verbessert Workflow Foundation Sicherheit (ACL, Data Protection...) Parallel Computing (PLINQ) Memory-Mapped Files BCL (Basisklassen) neue Methoden Extensibility (System.Addin.*) Windows CardSpace Networking FTP, WS2.0, SMTP... Fusion 2.0 XSLT 64 Bit C# 2.0, Generics 1.0 (2002) Web Services verbessert ASP.NET verbessert.net für Mobile Geräte 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

11 C# 2.0 bis 5.0 /.NET Compiler as a Service / Roslyn WinRT / Windows 8 / Metro Open Source... Parallel Computing (async / await) Covariance and Contravariance in Generics Dynamic Language Runtime CLR Security verbessert (Vista Support) C# 3.0 LINQ Windows Communication Foundation Windows Forms deutlich verbessert Background Garbage Collection Code Contracts Windows Presentation Foundation ASP.NET deutlich verbessert CLR Speed Improvements (Thread Pools etc.) Managed Extensibility Framework Garbage Collector verbessert Workflow Foundation Sicherheit (ACL, Data Protection...) Parallel Computing (PLINQ) Memory-Mapped Files BCL (Basisklassen) neue Methoden Extensibility (System.Addin.*) Windows CardSpace Networking FTP, WS2.0, SMTP... Fusion 2.0 XSLT 64 Bit C# 2.0, Generics 1.0 (2002) Web Services verbessert ASP.NET verbessert.net für Mobile Geräte 1.1 (2003) 2.0 (2006) 3.0 (2006) 3.5 (2007) 4.0 (2010) (2012) 4.6/5.0 (2015) Historie.NET 1.0 bis 5.0 Eine Präsentation der IT-Designers Gruppe 4

12 C# 2.0 bis 5.0 / Neu in C# 2.0 C# 2.0 bis 5.0 Neu in C# 2.0 Eine Präsentation der IT-Designers Gruppe 5

13 C# 2.0 bis 5.0 / Neu in C# 2.0 Wie lässt sich folgender Code vereinfachen? public static void Main () Console. WriteLine ( MachNullZuString (" Hallo ")); Console. WriteLine ( MachNullZuString ( null )); static string MachNullZuString ( string v) if(v!= null ) return v; return " nullwert "; C# 2.0??? Eine Präsentation der IT-Designers Gruppe 6

14 C# 2.0 bis 5.0 / Neu in C# 2.0 Wie lässt sich folgender Code vereinfachen? public static void Main () Console. WriteLine ( MachNullZuString (" Hallo ")); Console. WriteLine ( MachNullZuString ( null )); static string MachNullZuString ( string v) return (v!= null )? v : " nullwert "; C# 2.0??? Eine Präsentation der IT-Designers Gruppe 6

15 C# 2.0 bis 5.0 / Neu in C# 2.0 Wie lässt sich folgender Code vereinfachen? public static void Main () Console. WriteLine ( MachNullZuString (" Hallo ")); Console. WriteLine ( MachNullZuString ( null )); static string MachNullZuString ( string v) return v?? " nullwert "; C# 2.0??? Eine Präsentation der IT-Designers Gruppe 6

16 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 2.0 bis 5.0 Neu in C# 3.0 Eine Präsentation der IT-Designers Gruppe 7

17 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Erlaubt es, den Typ einer lokalen Variablen herzuleiten var alter = 30; var name = " Kevin Erath "; var wurzelzwei = Math. Sqrt (2); var meinarray = new int [] 1, 2, 3, 4 ; Ist das Gleiche wie int alter = 30; string name = " Kevin Erath "; double wurzelzwei = Math. Sqrt (2); int [] meinarray = new int [] 1, 2, 3, 4 ; Was ist Type Inference? Eine Präsentation der IT-Designers Gruppe 8

18 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Erweiterungsmethoden ermöglichen es einem bereits definierten Typ, nachträglich Methoden hinzuzufügen Nur verwenden, wenn der zu modifizierende Typ nicht direkt verändert werden kann - z. B. bei Klassen die als sealed gekennzeichnet sind public static class MyExtensions public static bool IsKevin ( this string str) return str == " Kevin "; string teststring = " Thomas "; Console. WriteLine ( teststring. IsKevin ()); Console. WriteLine (" Kevin ". IsKevin ()); Extension Methods Eine Präsentation der IT-Designers Gruppe 9

19 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Erweiterungsmethoden ermöglichen es einem bereits definierten Typ, nachträglich Methoden hinzuzufügen Nur verwenden, wenn der zu modifizierende Typ nicht direkt verändert werden kann - z. B. bei Klassen die als sealed gekennzeichnet sind public static class MyExtensions public static bool IsKevin ( this string str) return str == " Kevin "; string teststring = " Thomas "; Console. WriteLine ( teststring. IsKevin ()); Console. WriteLine (" Kevin ". IsKevin ()); False True Extension Methods Eine Präsentation der IT-Designers Gruppe 9

20 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Eigenschaften können vom Compiler auch automatisch implementiert werden public class Student public string Name get ; set ; public int Matrikelnummer get ; set ; Automatische Eigenschaften Eine Präsentation der IT-Designers Gruppe 10

21 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 C# 3.0 führt den Operator => ein, dieser wird auch als Lambda-Operator bezeichnet Der Operator verbessert die Erstellung von anonymen Methoden x => x * x (x, y) => x == y ( int x, string s) => s. Length > x () => SomeMethod () Lambda Ausdrück Eine Präsentation der IT-Designers Gruppe 11

22 C# 2.0 bis 5.0 / Neu in C# 3.0 x => x +1 x => return x +1; int x => x+1; C# 3.0 Der Ausdruck ist wie folgt zu verstehen: - Wende die folgende Funktion auf Variable x an. - F(x) = x+1 Wie eine Formel in der Mathematik ;-) Lambda Ausdrücke Eine Präsentation der IT-Designers Gruppe 12

23 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Finde alle Namen, die ein k enthalten: private static void Main () var list = new List <string > " dominik ", " roland ", " thomas ", " markus ", " alon "; var result = list. FindAll ( val => val. Contains ("k")); foreach ( var name in result ) Console. WriteLine ( name ); Lambda Ausdrücke Eine Präsentation der IT-Designers Gruppe 13

24 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Finde alle Namen, die ein k enthalten: private static void Main () var list = new List <string > " dominik ", " roland ", " thomas ", " markus ", " alon "; var result = list. FindAll ( val => val. Contains ("k")); foreach ( var name in result ) Console. WriteLine ( name ); dominik markus Lambda Ausdrücke Eine Präsentation der IT-Designers Gruppe 13

25 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Sprachänderungen in C# 3.0 haben nur ein Ziel LINQ zu ermöglichen Bietet eine native Sprache, um Datenquellen abzufragen - Abfragesprache sieht ähnlich wie SQL aus Prinzipiell gibt es drei Varianten: - DLINQ Relationale Datenabfrage - XLINQ XML-basierte Datenabfrage - Standard Query Operators Objektabfrage Language INtegrated Query Eine Präsentation der IT-Designers Gruppe 14

26 C# 2.0 bis 5.0 / Neu in C# 3.0 Es gibt zwei Möglichkeiten eine Datenabfrage zu formulieren: Abfragesyntax (ähnlich wie SQL) Methodensyntax (Erweiterungsmethoden) Beide Möglichkeiten sind gleichwertig. Datenabfragen mit LINQ Eine Präsentation der IT-Designers Gruppe 15

27 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte abrufen int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers select n; foreach ( int x in selected ) Console. WriteLine (x); LINQ Beispiel 1 Eine Präsentation der IT-Designers Gruppe 16

28 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte abrufen int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers select n; foreach ( int x in selected ) Console. WriteLine (x); LINQ Beispiel 1 Eine Präsentation der IT-Designers Gruppe 16

29 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte abrufen und um eins erhöhen int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers select n + 1; foreach ( int x in selected ) Console. WriteLine (x); LINQ Beispiel 2 Eine Präsentation der IT-Designers Gruppe 17

30 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte abrufen und um eins erhöhen int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers select n + 1; foreach ( int x in selected ) Console. WriteLine (x); LINQ Beispiel 2 Eine Präsentation der IT-Designers Gruppe 17

31 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte abrufen, die kleiner 5 sind int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers where n <5 select n; foreach ( int x in selected ) Console. WriteLine (x); LINQ Beispiel 3 Eine Präsentation der IT-Designers Gruppe 18

32 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte abrufen, die kleiner 5 sind int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers where n <5 select n; foreach ( int x in selected ) Console. WriteLine (x); LINQ Beispiel 3 Eine Präsentation der IT-Designers Gruppe 18

33 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte zählen, die ungerade sind int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; int ungeradezahlen = numbers. Count (n => n % 2 == 1); Console. WriteLine (" Ungerade Zahlen : " + ungeradezahlen ); LINQ Beispiel 4 Eine Präsentation der IT-Designers Gruppe 19

34 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Werte zählen, die ungerade sind int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; int ungeradezahlen = numbers. Count (n => n % 2 == 1); Console. WriteLine (" Ungerade Zahlen : " + ungeradezahlen ); Ungerade Zahlen : 5 LINQ Beispiel 4 Eine Präsentation der IT-Designers Gruppe 19

35 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Person mit bestimmtem Alter ermitteln Bisher: public IEnumerable <Person > FindPerson ( int alter ) foreach ( var person in personen ) if ( person. Age > alter ) yield return person ; LINQ Beispiel 5 Eine Präsentation der IT-Designers Gruppe 20

36 C# 2.0 bis 5.0 / Neu in C# 3.0 C# 3.0 Alle Person mit bestimmtem Alter ermitteln Bisher: public IEnumerable <Person > FindPerson ( int alter ) foreach ( var person in personen ) if ( person. Age > alter ) yield return person ; Mit LINQ: public IEnumerable <Person > FindPerson ( int alter ) return personen. Where (p => p.age > alter ); LINQ Beispiel 5 Eine Präsentation der IT-Designers Gruppe 20

37 C# 2.0 bis 5.0 / Neu in C# 3.0 Weitere Beispiele gibt es unter: LINQ Samples Eine Präsentation der IT-Designers Gruppe 21

38 C# 2.0 bis 5.0 / Neu in C# 4.0 C# 2.0 bis 5.0 Neu in C# 4.0 Eine Präsentation der IT-Designers Gruppe 22

39 C# 2.0 bis 5.0 / Neu in C# 4.0 Setzen von Defaultwerten für Übergabeparameter Aufrufer kann diese durch eigene Werte ersetzen Bisher: // Ueberladen ohne Parameter public void SagHallo () SagHallo (" Welt "); // Ueberladen mit Parameter public void SagHallo ( string name ) Console. WriteLine ("Hallo, " + name + "!"); Jetzt: public void SagHallo ( string name = " Welt ") Console. WriteLine ("Hallo, " + name + "!"); Optionale Parameter Eine Präsentation der IT-Designers Gruppe 23

40 C# 2.0 bis 5.0 / Neu in C# 4.0 Datenzugriff parallelisieren LINQ-Abfragen auf mehreren Kernen auszuführen Verwendet intern TPL für die Parallelisierung Unterstützt alle Standard.NET Abfrage Operatoren Es gibt zwei Möglichkeiten: - ParallelEnumerable-Klasse - AsParallel()-Erweiterungsmethode Parallel LINQ Eine Präsentation der IT-Designers Gruppe 24

41 C# 2.0 bis 5.0 / Neu in C# 4.0 Sequentielle Abfrage int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers where n <5 orderby n select n; Parallele Abfrage int [] numbers = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1; IEnumerable <int > selected = from n in numbers. AsParallel () where n <5 orderby n select n; Einfache parallele Datenabfrage Eine Präsentation der IT-Designers Gruppe 25

42 C# 2.0 bis 5.0 / Neu in C# 4.0 using System ; using System. Diagnostics ; using System. Linq ; class Program static void Main () var numbers = new byte [ ]; new Random (). NextBytes ( numbers ); var watch = new Stopwatch (); watch. Start (); // LINQ Abfrage var r1 = ( from n in numbers where n<5 orderby n select n). Count (); watch. Stop (); Console. WriteLine (" Ergebnis " + r1 + " in " + watch. Elapsed ); watch. Restart (); // PLINQ Abfrage var r2 = ( from n in numbers. AsParallel () where n<5 orderby n select n). Count (); watch. Stop (); Console. WriteLine (" Ergebnis " + r2 + " in " + watch. Elapsed ); LINQ vs. PLINQ Eine Präsentation der IT-Designers Gruppe 26

43 C# 2.0 bis 5.0 / Neu in C# 4.0 using System ; using System. Diagnostics ; using System. Linq ; class Program static void Main () var numbers = new byte [ ]; new Random (). NextBytes ( numbers ); var watch = new Stopwatch (); watch. Start (); // LINQ Abfrage var r1 = ( from n in numbers where n<5 orderby n select n). Count (); watch. Stop (); Console. WriteLine (" Ergebnis " + r1 + " in " + watch. Elapsed ); watch. Restart (); // PLINQ Abfrage var r2 = ( from n in numbers. AsParallel () where n<5 orderby n select n). Count (); watch. Stop (); Console. WriteLine (" Ergebnis " + r2 + " in " + watch. Elapsed ); Ergebnis in 00:00: Ergebnis in 00:00: LINQ vs. PLINQ Eine Präsentation der IT-Designers Gruppe 26

44 Neu in C# 6.0 C# 2.0 bis 5.0 Neu in C# 6.0 Eine Präsentation der IT-Designers Gruppe 27

45 Neu in C# 6.0 / Initialisierung readonly Auto-Properties Neu in C# 6.0 Initialisierung readonly Auto-Properties Eine Präsentation der IT-Designers Gruppe 28

46 Neu in C# 6.0 / Initialisierung readonly Auto-Properties Bisher: public class Customer public List <int > Versions get ; set ; public byte State get; private set; public Customer () Versions = new List <int >(); State = 1; C# 6.0 Jetzt: public class Customer public List <int > Versions get; set; = new List <int >(); public byte State get; = 1; Initialisierung readonly Auto-Properties Eine Präsentation der IT-Designers Gruppe 29

47 Neu in C# 6.0 / Interpolation von Zeichenketten Neu in C# 6.0 Interpolation von Zeichenketten Eine Präsentation der IT-Designers Gruppe 30

48 Neu in C# 6.0 / Interpolation von Zeichenketten Bisher: class Point public int X get; set; public int Y get; set; public override string ToString () return string. Format ("0 / 1", X, Y); C# 6.0 Jetzt: class Point public int X get; set; public int Y get; set; public override string ToString () return $"X / Y"; Interpolation von Zeichenketten Eine Präsentation der IT-Designers Gruppe 31

49 Neu in C# 6.0 / Lambda-Ausdrücke als Rümpfe Neu in C# 6.0 Lambda-Ausdrücke als Rümpfe Eine Präsentation der IT-Designers Gruppe 32

50 Neu in C# 6.0 / Lambda-Ausdrücke als Rümpfe Bisher: class Point public int X get; set; public int Y get; set; public override string ToString () return $"X / Y"; C# 6.0 Jetzt: class Point public int X get; set; public int Y get; set; public override string ToString () => $"X / Y"; Lambda-Ausdrücke als Methodenrumpf Eine Präsentation der IT-Designers Gruppe 33

51 Neu in C# 6.0 / Lambda-Ausdrücke als Rümpfe Bisher: public class Point public int X get; set; public int Y get; set; public double Distance get return Math. Sqrt (X*X+Y*Y); C# 6.0 Jetzt: public class Point public int X get; set; public int Y get; set; public double Distance => Math. Sqrt (X*X+Y*Y); Lambda-Ausdrücke als Eigenschaftenrumpf Eine Präsentation der IT-Designers Gruppe 34

52 Neu in C# 6.0 / Null-Wert Operator Neu in C# 6.0 Null-Wert Operator Eine Präsentation der IT-Designers Gruppe 35

53 Neu in C# 6.0 / Null-Wert Operator Wie kann folgendes vereinfacht werden? class Point public int X get; set; public int Y get; set; public static Point FromJson ( JObject obj) if ( obj!= null && obj["x"]!= null && obj["x"]. Type == JTokenType. Integer && obj["y"]!= null && obj["y"]. Type == JTokenType. Integer ) return new Point (( int)obj["x"], ( int)obj["y"]); C# 6.0 return null ; Der Elvis-Operator Eine Präsentation der IT-Designers Gruppe 36

54 Neu in C# 6.0 / Null-Wert Operator Wie kann folgendes vereinfacht werden??. Und weiter? class Point public int X get; set; public int Y get; set; public static Point FromJson ( JObject obj) if ( obj!= null && // obj ["x"]!= null && obj ["x"]. Type == JTokenType. Integer && // obj ["y"]!= null && obj ["y"]. Type == JTokenType. Integer ) obj["x"]?. Type == JTokenType. Integer && obj["y"]?. Type == JTokenType. Integer ) return new Point (( int)obj["x"], ( int)obj["y"]); C# 6.0 return null ; Der Elvis-Operator Eine Präsentation der IT-Designers Gruppe 36

55 Neu in C# 6.0 / Null-Wert Operator Wie kann folgendes vereinfacht werden??. Und weiter?? class Point public int X get; set; public int Y get; set; public static Point FromJson ( JObject obj) // if (obj!= null && // obj ["x "]?. Type == JTokenType. Integer && // obj ["y "]?. Type == JTokenType. Integer ) if ( obj?["x"]?. Type == JTokenType. Integer && obj?["y"]?. Type == JTokenType. Integer ) return new Point (( int)obj["x"], ( int)obj["y"]); C# 6.0 return null ; Der Elvis-Operator Eine Präsentation der IT-Designers Gruppe 36

Ich liebe Java && Ich liebe C# Rolf Borst

Ich liebe Java && Ich liebe C# Rolf Borst Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Besonderheiten von C#

Besonderheiten von C# Besonderheiten von C# Wert- und Referenztypen int a, b; a = 3; b = a; a++; Debug.Assert( a==4 && b==3 &&!a.equals(b), "int ist doch kein Werttyp" ); RTyp ra, rb; ra = new RTyp(3); rb = ra; ra.inc(); Debug.Assert(

Mehr

The app the crashes, before the breakpoint is reached: Code to the event:

The app the crashes, before the breakpoint is reached: Code to the event: I have set a breakpoint in an asyc event-handler to ListView.ItenTapped-Event (see screenshot below): I then tap on an ListView-entry on my iphone 5 The app the crashes, before the breakpoint is reached:

Mehr

Back to the Future Eine Zeitreise von C# 1.0 zu C# 7.0

Back to the Future Eine Zeitreise von C# 1.0 zu C# 7.0 Back to the Future Eine Zeitreise von C# 1.0 zu C# 7.0 About us David Tielke mail@david-tielke.de Twitter: @davidtielke Ing. Christian Giesswein, MSc. www.software.tirol christian@software.tirol Twitter:

Mehr

Neue Features in C# 2.0

Neue Features in C# 2.0 Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

Mehr

Monaden in anderen Programmiersprachen

Monaden in anderen Programmiersprachen Monaden in anderen Programmiersprachen Themen Informatik-Seminar SS 2013: Programmiersprachen und Sprachsysteme Bei: Prof. Dr. Schmidt, FH Wedel inf9500 Sebastian Philipp Überblick Motivation Monaden in

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

.NET als Microsofts Entwicklerplattform

.NET als Microsofts Entwicklerplattform .NET als Microsofts Entwicklerplattform Frank Prengel Technologieberater Microsoft Deutschland http://blogs.msdn.com/frankpr Agenda Was ist.net eigentlich? Microsoft.NET heute.net Framework 2.0, 3.0.NET

Mehr

Grundlagen in C# und.net

Grundlagen in C# und.net Grundlagen in C# und.net Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr

Leseprobe. Thorsten Kansy. Datenbankprogrammierung mit.net 3.5. Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008

Leseprobe. Thorsten Kansy. Datenbankprogrammierung mit.net 3.5. Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008 Leseprobe Thorsten Kansy Datenbankprogrammierung mit.net 3.5 Mehrschichtige Applikationen mit Visual Studio 2008 und MS SQL Server 2008 Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41450-1 Weitere

Mehr

LINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer BernhardG@ppedv.de

LINQ. LANGUAGE INTEGREATED QUERY.net 3.5. Bernhard Grojer BernhardG@ppedv.de LINQ LANGUAGE INTEGREATED QUERY.net 3.5 Bernhard Grojer BernhardG@ppedv.de Agenda Übersicht LINQ Basistechnologien Verschiedene Arten von LINQ LINQ (to Objects) LINQ TO SQL Übersicht LINQ Aggregationen

Mehr

Jürgen Bayer. Anonyme Methoden, Lambda-Ausdrücke und Ausdrucksbäume in.net

Jürgen Bayer. Anonyme Methoden, Lambda-Ausdrücke und Ausdrucksbäume in.net Jürgen Bayer Anonyme Methoden, Lambda-Ausdrücke und Ausdrucksbäume in.net Inhaltsverzeichnis 1 Einleitung 1 2 Anonyme Methoden 2 3 Lambda-Ausdrücke 4 4 Ausdrucksbäume 6 4.1 Was sind Ausdrucksbäume? 6 4.2

Mehr

Asynchrone Programmierung mit Async und Await in C# 5 unter der Lupe

Asynchrone Programmierung mit Async und Await in C# 5 unter der Lupe Asynchrone Programmierung mit Async und Await in C# 5 unter der Lupe Prof. Dr. Luc Bläser Hochschule für Technik Rapperswil Parallel 2013, Karlsruhe 16. Mai 2013 Ausgangslage Async/Await Sprachkonstrukte

Mehr

C#Objektorientierte. Aleksandra Maj. Programmiersprachen. Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars. 15.

C#Objektorientierte. Aleksandra Maj. Programmiersprachen. Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars. 15. C#Objektorientierte Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars Programmiersprachen 15.Juli 2004 Aleksandra Maj 1 1.Einleitung Kurze Geschichte und Ziele der neuen Programmiersprache

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von:

Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von: 1 Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von: Language INtegrated Query LINQ Datenabfragen in C# Proseminar Programmierparadigmen und Sprachen Christian

Mehr

im Rahmen des Seminars - Programmiersprachen Markus Nestvogel

im Rahmen des Seminars - Programmiersprachen Markus Nestvogel C# im Rahmen des Seminars - Programmiersprachen Markus Nestvogel 2 Gliederung 1. Einführung 2. Microsoft.NET 3. C# 3 1 Einführung objektorientierte Programmiersprache für Microsoft.NET entwickelt Konkurrenz

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR

Rainer Stropek cubido. Baumschule Expression Trees in C#, CLR und DLR Rainer Stropek cubido Baumschule Expression Trees in C#, CLR und DLR Inhalt Als Anwendungsentwickler kommt man selten mit Expression Trees in Berührung. Sie sind ein Implementierungsdetail von LINQ. Ihre

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Visual Studio 2012 Windows 8 und.net 4.5. Hans Peter Bornhauser, Noser Engineering AG Fachbereichsleiter.NET, Digicomp AG

Visual Studio 2012 Windows 8 und.net 4.5. Hans Peter Bornhauser, Noser Engineering AG Fachbereichsleiter.NET, Digicomp AG 1 Visual Studio 2012 Windows 8 und.net 4.5 Hans Peter Bornhauser, Noser Engineering AG Fachbereichsleiter.NET, Digicomp AG 2 Der Referent: Hans Peter Bornhauser Dipl. Ing ETH Software Architect, Senior

Mehr

Teil A Einführung in Microsoft Visual C# und Microsoft Visual Studio 2008 23

Teil A Einführung in Microsoft Visual C# und Microsoft Visual Studio 2008 23 Einleitung 13 Einführung 13 An wen sich dieses Buch richtet 13 Wegweiser für Ein- und Umsteiger 14 Konventionen und Features in diesem Buch 15 Konventionen 15 Weitere Features 16 Systemvoraussetzungen

Mehr

.NET und Language Integrated Query (LINQ) W3L AG info@w3l.de

.NET und Language Integrated Query (LINQ) W3L AG info@w3l.de 1.NET und Language Integrated Query (LINQ) W3L AG info@w3l.de 2012 2 Inhaltsverzeichnis LINQ to Objects Vergleich mit Schleifen Abfrage-Syntax Erweiterungsmethoden-Syntax LINQ Abfrage Bestandteile Spracherweiterungen

Mehr

Aktivitäten in C# /.NET umsetzen

Aktivitäten in C# /.NET umsetzen Aktivitäten in C# /.NET umsetzen Grundlagen von C# Dr. Beatrice Amrhein Überblick Grundlagen der C# Syntax Visual C# Express Einfache Abläufe umsetzen 2 Grundlagen von C# 3 Merkmale von C# C# besteht aus

Mehr

für Java-Entwickler Sebastian Gepperth Seminar LaVida Wintersemester 2010/2011

für Java-Entwickler Sebastian Gepperth Seminar LaVida Wintersemester 2010/2011 C# für Java-Entwickler Sebastian Gepperth Seminar LaVida Wintersemester 2010/2011 Gliederung Einleitung 1 Ähnlichkeiten und Unterschiede zu Java 2 Überblick über fortgeschrittene Features 3 CLR / Biblioteken

Mehr

Spracherweiterungen von C# 3.5

Spracherweiterungen von C# 3.5 Microsoft Press Seitenanzahl 13 45 Spracherweiterungen von C# 3.5 Lokale Typinferenz 1213 Erweiterungsmethoden 1214 Objektinitialisierer 1216 Anonymer Typ 1217 Lambda-Ausdrücke 1218 Die Spracherweiterungen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Begleitendes Praktikum zur Vorlesung Mustererkennung

Begleitendes Praktikum zur Vorlesung Mustererkennung Begleitendes Praktikum zur Vorlesung Mustererkennung WS14/15 Übersicht Kontakt Aufgaben Bibliotheken Hinweise zu C# Kontakt Internet: http://cvpr.unimuenster.de/teaching/ws1415/me_praktikum/ Softwareumgebung:

Mehr

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz SS12 Kontakt Internet: http://cvpr.uni-muenster.de/teaching/ss12/ki/ RSS-Feed Kalender Dipl.-Math. Michael Schmeing m.schmeinguni-muenster.de

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

Inhaltsverzeichnis. 1 Einleitung 1. 2 Einordnung 2 2.1 Geschichte und Entwicklung der Sprache... 2 2.2 Vorgängersprachen... 3 2.3 Paradigmen...

Inhaltsverzeichnis. 1 Einleitung 1. 2 Einordnung 2 2.1 Geschichte und Entwicklung der Sprache... 2 2.2 Vorgängersprachen... 3 2.3 Paradigmen... Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion Institut für Informatik Christian-Albrechts-Universität zu Kiel Seminararbeit C# - Die.NET Sprache Thoren Horstmann WS 2012/2013 Betreuer: Fabian

Mehr

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java

Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Inhaltsverzeichnis. Vorwort... 15

Inhaltsverzeichnis. Vorwort... 15 Vorwort..................................................... 15 Kapitel 1.NET Framework.................................. 19 1.1 Geschichte................................... 19 1.2 Aufbau des.net Framework..................

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:

Mehr

DataTables LDAP Service usage Guide

DataTables LDAP Service usage Guide DataTables LDAP Service usage Guide DTLDAP Usage Guide thomasktn@me.com / www.ktn.ch Benutzung des DTLDAP Service DataTables Der Service stellt einen JSON Feed für DataTables (http://www.datatables.net)

Mehr

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung

Mehr

188.154 Einführung in die Programmierung Vorlesungsprüfung

188.154 Einführung in die Programmierung Vorlesungsprüfung Matrikelnummer Studienkennzahl Name Vorname 188.154 Einführung in die Programmierung Vorlesungsprüfung Donnerstag, 27.1.2005, 18:15 Uhr EI 7 Arbeitszeit: 60 min - max. 50 Punkte erreichbar - Unterlagen

Mehr

Hochschule Darmstadt Fachbereich Informatik

Hochschule Darmstadt Fachbereich Informatik Hochschule Darmstadt Fachbereich Informatik WPF Routed Events, Datenbankanbindung 03.05.2010 63 Praktikum Tipp: Beispiellösungen zu P4: http://dotnet.jku.at/csbuch/solutions/ Projektvorschläge: Internet-Timeout

Mehr

Cross-Platform Mobile mit.net

Cross-Platform Mobile mit.net Cross-Platform Mobile mit.net Mobile Entwicklungslandschaft Nativ Crosscompiled Hybrid Web Beste Usability? Überschaubare Kosten? Was ist Xamarin? Was ist Xamarin? 2011 Gegründet aus dem Ximian, Novell

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen

Mehr

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung 1. "Hai!" [Konsolenanwendung] Console.WriteLine("Hai, wie geht's?"); 2. Muktiplikation mit sich selbst [Konsolenanwendung] // Ausgabe

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Virtual Machines unter der Haube

Virtual Machines unter der Haube Virtual Machines unter der Haube Alexander Lais unfug.org 21.06.2007 Agenda Aufbau der Laufzeitumgebungen Binärformate und Befehlssatz Compilierung Garbage Collection Nativer Code

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen

Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung

Mehr

Grundlagen von C# - 1

Grundlagen von C# - 1 Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften

Mehr

LINQ Verstehen und Einsetzen

LINQ Verstehen und Einsetzen LINQ Verstehen und Einsetzen Proseminar Objektorientiertes Programmieren mit.net und C# Georg Wagner Institut für Informatik Software & Systems Engineering Agenda 1 2 3 4 5 LINQ-Einführung (Motivation,

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in

Mehr

Java EE 6 Ein Überblick

Java EE 6 Ein Überblick Java EE 6 Ein Überblick Bernd Müller Fakultät Informatik Ostfalia Hochschule Braunschweig/Wolfenbüttel GI-Regionalgruppe Braunschweig, 16.2.2012 Bernd Müller, Fakultät Informatik, Ostfalia, 16.2.2012 1/31

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

ADT: Java Collections und ArrayList

ADT: Java Collections und ArrayList ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,

Mehr

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Gregor Raschke 2008 HIBERNATE. Eine Einführung 1 HIBERNATE Eine Einführung Inhalt 2 Einleitung Beispielkonfiguration Die hibernate.cfg.xml Eine Beispieltransaktion Abfragemöglichkeiten JPA und Hibernate Ressourcen und Quellen Einleitung (1) - Geschichtliches

Mehr

C# 6.0 und die.net Compiler Platform (Roslyn) Hans Peter Bornhauser

C# 6.0 und die.net Compiler Platform (Roslyn) Hans Peter Bornhauser 1 C# 6.0 und die.net Compiler Platform (Roslyn) Hans Peter Bornhauser Partner: 2 Worum geht es? Neue Sprachfeatures in C# 6.0 Neues in Visual Studio 2015 Roslyn Compilerplattform Ausblick auf nächste Version

Mehr

Paolo Pialorsi, Marco Russo. Datenbankprogrammierung. mit Microsoft LINQ. Microsoft

Paolo Pialorsi, Marco Russo. Datenbankprogrammierung. mit Microsoft LINQ. Microsoft Paolo Pialorsi, Marco Russo Datenbankprogrammierung mit Microsoft LINQ Microsoft Inhaltsverzeichnis Vorwort Einleitung Danksagung XV XVII XVIII Einführung Über dieses Buch Systemanforderungen Die Companion-Website

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Einführung in die STL

Einführung in die STL 1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung

Mehr

Arbeitsblatt: Aufgaben zur Vorbereitung

Arbeitsblatt: Aufgaben zur Vorbereitung Arbeitsblatt: Aufgaben zur Vorbereitung Dieses Arbeitsblatt enthält Aufgaben, die der Vorbereitung auf das Praktikum dienen. Die Aufgaben müssen bis zum 09.03.2011 bearbeitet werden. Die Ergebnisse werden

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering

LINQ to SQL. Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel. Institut für Informatik Software & Systems Engineering LINQ to SQL Proseminar Objektorientiertes Programmieren mit.net und C# Christoph Knüttel Institut für Informatik Software & Systems Engineering Agenda 1. LINQ allgemein Vorteile Bausteine und Varianten

Mehr

Gui & Widgets. GUI & Widgets, Events GUI? Als GUI (= Graphical User Interface ) bezeichnet man die

Gui & Widgets. GUI & Widgets, Events GUI? Als GUI (= Graphical User Interface ) bezeichnet man die GUI & Widgets, Events Einführung in C# GUI 3 Übersicht Gui & Widgets Events Kurze Einführung in C# GUI? Als GUI (= Graphical User Interface ) bezeichnet man die grafische Benutzungsschnittstelle oder auch

Mehr

Programmieren in Haskell Einführung

Programmieren in Haskell Einführung Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:

Mehr

<body> <h1>testseite für HTML-Parameter-Übergabe<br>50 Parameter werden übergeben</h1>

<body> <h1>testseite für HTML-Parameter-Übergabe<br>50 Parameter werden übergeben</h1> Demo-Programme Parameterübergabe an PHP Testseite für HTML-Parameter-Übergabe (Datei get_param_test.html) testseite für

Mehr

public class SternchenRechteckGefuellt {

public class SternchenRechteckGefuellt { Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

Computer Vision und Mustererkennung SS11

Computer Vision und Mustererkennung SS11 Computer Vision und Mustererkennung SS11 Übungen Kontakt Internet: http://cvpr.unimuenster.de/teaching/ss11/computervisionmustererkennungss11/ RSS-Feed Kalender Dipl.-Math. Michael Schmeing m.schmeinguni-muenster.de

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Die Alternative zum Web-Form Modell

Die Alternative zum Web-Form Modell Marc André Zhou Solution Architect www.dev -sky.net www.just -sp.net Die Alternative zum Web-Form Modell dotnet Cologne 03.05.2013 Agenda Web Forms vs. MVC ASP.NET MVC Features Web API ODATA Eine ASP.NET

Mehr

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank

Mehr

LINQ & Streams. Arthur Zaczek

LINQ & Streams. Arthur Zaczek LINQ & Streams Arthur Zaczek Apr 2015 1 C# LINQ 1.1 LINQ Language Integrated Query Abfragen gegen beliebige Datenquellen möglich Listen von Objekten Datenbanken (Linq2SQL, Entity Framework, nhibernate)

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Aufbau des Beispiels. Arthur Zaczek. Feb 2015

Aufbau des Beispiels. Arthur Zaczek. Feb 2015 Arthur Zaczek Feb 2015 1 Aufbau des Beispiels 1.1 Architektur - Java Figure 1: Architektur Java 1 1.2 Architektur - CS Figure 2: Architektur C# 1.3 Java vs. CS Java: JavaFX hat Controller Aktionen werden

Mehr

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 1: Grundlagen 1/27/2012 1 Vorstellung Kursleiter Florian Rappl 9 Jahre Erfahrung mit C# Ausbildung zum Fachinformatiker bei

Mehr

GUI-Entwicklung 2: Windows Presentation Foundation

GUI-Entwicklung 2: Windows Presentation Foundation GUI-Entwicklung 2: Windows Presentation Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Sandra Müller Institut für Informatik Software & Systems Engineering Agenda 1. Die WPF 2. Einführung

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Design by Contract with JML

Design by Contract with JML Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?

Oliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring? oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11 C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen

Mehr

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016 to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02 Prof. Dr.-Ing. Holger Vogelsang (FH-Karlsruhe) Dipl.-Inform. (FH) Gudrun Keller (FH-Karlsruhe) Dipl.-Inform. Mathias Supp (.riess

Mehr

Zusammenfassung: Programmieren 2 (C#)

Zusammenfassung: Programmieren 2 (C#) Zusammenfassung: Programmieren 2 (C#) Arrays Eindimensional int[] feld; feld = new int[2]; int[] feld2 = new int[3]; int[] feld3 = new int[] 1, 2, 3 ; //oder int[] feld4 = 1, 2, 3 ; int laenge = feld3.length;

Mehr

8a. Exkurs.NET. 8a.1.NET Architektur

8a. Exkurs.NET. 8a.1.NET Architektur 8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr