Entwicklung der Programmiersprache C#

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

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

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

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

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

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

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

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

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

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

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

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

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

2. Semester, 2. Prüfung, Lösung

2. Semester, 2. Prüfung, Lösung 2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter

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

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

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

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

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

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

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

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

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

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

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

C++ Tutorial: Timer 1

C++ Tutorial: Timer 1 C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist

Mehr

Scala kann auch faul sein

Scala kann auch faul sein Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?

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

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

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

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

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente Dr. Beatrice Amrhein Überblick Die Architektur WPF Projekt erstellen Steuerelemente einfügen Eigenschaften von Steuerelementen ändern Nach

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

Auswahlabfragen mit ACCESS

Auswahlabfragen mit ACCESS Auswahlabfragen mit ACCESS Abfragekriterien und Operatoren Beim Entwerfen von ACCESS-Auswahlabfragen (queries) sind definierte Abfragekriterien bzw. Operatoren zu benutzen. Ein Abfragekriterium ist eine

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

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

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT

Verknüpfte Daten abfragen mit SPARQL. Thomas Tikwinski, W3C.DE/AT Verknüpfte Daten abfragen mit SPARQL Thomas Tikwinski, W3C.DE/AT Agenda SPARQL Eine Anfragesprache für RDF Was ist eine SPARQL-Abfrage? Beispiel Arbeiten mit Variablen Komplexere Anfragen Filtern und sortieren

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany

Datenbanken 1. Einführung und Zugänge für die eingesetzten Resourcen. ISWeb - Information Systems & Semantic Web University of Koblenz Landau, Germany University of Koblenz Landau, Germany Einführung und Zugänge für die eingesetzten Resourcen of 20 Überblick Eingesetzte Resourcen und ihre Zugänge WebCT FTP-Server PHP PostgreSQL

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

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

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

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

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2) Kurzbeschreibung: Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2) Beim HSI-88-USB handelt es sich um ein Interface vom s88-rückmeldebus zum Universal Serial Bus

Mehr

5.3.1.6 Laborübung - Task Manager (Verwalten von Prozessen) in Windows Vista

5.3.1.6 Laborübung - Task Manager (Verwalten von Prozessen) in Windows Vista 5.0 5.3.1.6 Laborübung - Task Manager (Verwalten von Prozessen) in Windows Vista Einführung Drucken Sie diese Übung aus und folgen Sie den Anweisungen. In dieser Übung werden Sie sich den Task Manager

Mehr

Thomas Claudius Huber. Asynchrone Programmierung mit C#

Thomas Claudius Huber. Asynchrone Programmierung mit C# Thomas Claudius Huber Asynchrone Programmierung mit C# Thomas Claudius Huber Principal Consultant @ Trivadis AG Trainer, Coach, Developer, Architect www.thomasclaudiushuber.com Spezialisiert auf WPF, XAML,

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

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

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

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

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

Typdeklarationen. Es gibt in Haskell bereits primitive Typen:

Typdeklarationen. Es gibt in Haskell bereits primitive Typen: Typdeklarationen Es gibt in bereits primitive Typen: Integer: ganze Zahlen, z.b. 1289736781236 Int: ganze Zahlen mit Computerarithmetik, z.b. 123 Double: Fließkommazahlen, z.b. 3.14159 String: Zeichenketten,

Mehr

Ingenieurinformatik Diplom-FA (C-Programmierung)

Ingenieurinformatik Diplom-FA (C-Programmierung) Hochschule München, FK 03 WS 2014/15 Ingenieurinformatik Diplom-FA (C-Programmierung) Zulassung geprüft: (Grundlagenteil) Die Prüfung ist nur dann gültig, wenn Sie die erforderliche Zulassungsvoraussetzung

Mehr

SDK zur CRM-Word-Schnittstelle

SDK zur CRM-Word-Schnittstelle SDK zur CRM-Word-Schnittstelle SDK zur CRM Wordinterface für Microsoft Dynamics CRM2011 zur Version 5.2.0 Inhalt 1. Vorwort... 3 2. Voraussetzungen... 4 3. Funktionsbeschreibung... 4 4. Technische Funktionsbeschreibung...

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

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

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

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

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

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

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

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2009, 16. Juli 2009 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

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

Kontrollstrukturen und Funktionen in C

Kontrollstrukturen und Funktionen in C Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren

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

Dokumentation: Content App Framework

Dokumentation: Content App Framework Dokumentation: Content App Framework Andreas Breuninger, medialesson GmbH Januar 2013 Inhaltsverzeichnis 1. DataService... 3 1.1. Laden/Parsen der Daten... 3 1.1.1. GetDataset() -> GetDataAsync() ->

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Programmiervorkurs WS 2012/2013. Schleifen und Methoden

Programmiervorkurs WS 2012/2013. Schleifen und Methoden Programmiervorkurs WS 2012/2013 Schleifen und Methoden Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.:

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) 1. Loggen Sie sich im Administratorbereich ein und gehen Sie auf Extension > Extension Manager 2. Wählen Sie Install languages 3. Klicken Sie

Mehr