Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von:

Größe: px
Ab Seite anzeigen:

Download "Integrierte deklarative Abfragesprachen in imperativen Programmiersprachen am Beispiel von:"

Transkript

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

2 Agenda Wozu LINQ? 2. Was ist LINQ? 3. Woher kommt LINQ? 4. Welche Erweiterungen benötigt LINQ? 5. Wie funktioniert LINQ? 6. Warum LINQ / Warum Nicht?

3 01 Wozu LINQ? 03 Wie fragen wir normalerweise Daten ab? Liefere mir eine Liste Von allen Webseiten der Welt die etwas mit LINQ zu tun haben Ausgabeformat Datenquelle Einschränkungen - deklarativ - mengenorientiert

4 01 Wozu LINQ? 04 Abfragen von Datenbanken in SQL Syntax Liefere mir eine Liste Von allen Kunden Die mehr als 1000 bezahlt haben SELECT C.* FROM Customers C WHERE ( SELECT SUM(Price) * SUM(Quantity) FROM Orders O WHERE O.CustID = C.CustID ) > 1000

5 01 Wozu LINQ? 05 Abfragen in imperativen Programmiersprachen Liefere mir eine Liste Von allen Kunden Die mehr als 1000 bezahlt haben List<Customer> selectedcustomers = new List<Customer>(); foreach (Customer customer in context.getcustomers()) { int sum = 0; foreach (Order od in customer.orders) { sum += od.unitprice * Quantity; } if(sum > 1000) selectedcustomers.add(customer); }

6 01 Wozu LINQ? 06 Abfragen in LINQ var cust= from c in Customers where c.orders.sum(o => o.unitprice * o.quantity) > 1000 select c; deklerativ List<Customer> selectedcustomers = new List<Customer>(); foreach ( Customer customer in getcustomers() ) { int sum = 0; foreach (Order od in customer.orders) { sum += od.unitprice * Quantity; } if(sum > 1000) selectedcustomers.add(customer); } imperativ

7 01 Wozu LINQ? 07 Wie gehen wir mit heterogenen Datenquellen um? Objekte Datenbanken XML-Datein Web Services DB- Framework XML Library WS Library Programmcode

8 02 Was ist LINQ? 08

9 02 Was ist LINQ? 09 LINQ - Erweiterung des.net Frameworks und Spracherweiterungen der.net Sprachen - Typsichere Abfragesprache auf Ebene der Programmiersprache - SQL-ähnliche Syntax (Syntaxprüfung durch Compiler) - Wählt den Ansatz der deklarativen Programmierung (High-Level) C# Visual Basic Andere Sprachen.NET Language Integrated Query (LINQ).NET basierte Sprachen.NET Framework LINQ-fähige Datenquellen LINQ-fähiges ADO.NET LINQ Provider LINQ to Objects LINQ to Dataset LINQ to SQL LINQ to Entities LINQ to XML <Book> <author/> <Book> Datenquellen

10 02 Was ist LINQ? 10 LINQ - Frameworkprovider LINQ to Objects arbeitet auf IEnumerable LINQ to XML arbeitet auf XML Strukturen LINQ to SQL arbeitet auf dem Microsoft SQL Server LINQ to ADO.NET arbeitet auf ADO.NET Datenquellen LINQ to Entities arbeitet auf beliebigen relativen Datenbanken LINQ Weitere Provider LINQ to Amazon LINQ to NHibernate LINQ to Flickr LINQ to Google LINQ to LDAP

11 03 Woher kommt LINQ? 11

12 03 Woher kommt LINQ? 12 Die.NET Plattform -.NET ist eine von Microsoft entwickelte Software-Plattform erstmals veröffentlicht (zusammen mit Visual Studio als IDE) -.NET ist eine Implementierung der CLI (Common Language Infrastructure) - CLI ist ein ECMA Standard - soll sprach- und plattformunabhängige Entwicklung und Ausführung ermöglichen

13 03 Woher kommt LINQ? 13 Die.NET Plattform C# VB.NET C++ CLS Common Language Specification C# Compiler VB.NET Compiler C++ Compiler Zwischencode CIL Common Intermediate Language JIT Compiler für Windows JIT Compiler für anderes Betriebssystem CLR Common Language Runtime Maschinencode Maschinencode

14 04 Welche Erweiterungen benötigt LINQ? 14

15 04 Welche Erweiterungen benötigt LINQ? 15 Type Inference var name = Peter ; String var num = 25; int var num2 = 25.5; double var num3 = 25.5F; float var cust = new Customer(); Customer - deklarieren von Variablen ohne explizite Angabe des Typs - implizites Ableiten des Typs durch Deklaration (strenge Typisierung) - Type Inference sollte nicht aus Faulheit benutzt werden Verwendung 1. Deklaration von Annonyme Typen 2. Zur Vermeidung von sehr langen Typen (Rückgabetypen von LINQ-Statements) 3. Umgang mit wechselnden Typen während der Entwicklung

16 Compiler Was ist LINQ? - Sprachgrundlagen 16 Type Inference var name = Peter ; String var num = 25; Integer var num2 = 25.5; Double var num3 = 25.5F; Float var cust = new Customer(); Customer C# String name = Peter ; int num = 25; double num2 = 25.5; float num3 = 25.5F; Customer cust = new Customer(); Pseudo CIL

17 Was ist LINQ? - Sprachgrundlagen 17 Anonyme Typen var person = new { Name = Peter } Console.WriteLine( person.name ); - Klassen ohne vordefinierten Typ - besitzen nur lesbare Properties - Typ der Properties wird über Type Inference ermittelt - Anonyme Typen können nicht praktikabel als Parameter übergeben werden Verwendung - werden als temporäre Typen für kurze Verarbeitung genutzt

18 04 Welche Erweiterungen benötigt LINQ? 18 Extension Methods Erweiterungsmethoden - Klassen statisch um Funktionalität erweitern - Methoden zu Klassen hinzufügen ohne den Quellcode der Klasse zu manipulieren Konsequenzen - erhöht die Lesbarkeit des Quellcodes - ermöglicht Interfaces um Funktionalität zu erweitern

19 04 Welche Erweiterungen benötigt LINQ? 19 Extension Methods public static class MyExtensions { public static int Add(this int a, int b) { return a+b; } } int x = 12; int c = x.add( 10 ); //c = 22

20 04 Welche Erweiterungen benötigt LINQ? 20 Extension Methods Erweiterung von Interfaces public interface ICatalog { void AddItem( String itemname ); } public static class MyExtensions { public static void Sort(this ICatalog catalog) { //Implementierung der Sortierung } }

21 04 Welche Erweiterungen benötigt LINQ? 21 Wozu Extension Methods Statische Helper-Klassen vs. Extension Methods Szenario: - Personen die einen Namen und ein Gehalt haben - Man braucht Filter die eine Liste von Personen nach Namen und Gehalt filtern List<Person> filterbyname( List<Person> per, String name ) List<Person> filterbysalery( List<Person> per, int salery ) Mit Helper Klasse: MyHelper.filterByName( MyHelper.filterBySalery( persons,1000 ), Peter ); Mit Extension Methods: persons.filterbysalery( 1000 ).filterbyname( Peter );

22 04 Welche Erweiterungen benötigt LINQ? 22 Lambda Expressions Func<int, int, int> myfunction = (x,y) => x + y; myfunction(1,2); //3 - andere Syntax für annonyme Methoden auf Basis von Funktionszeigern (delegates) - Annonyme Methoden und Delegates wurden mit.net 2.0 eingeführt - Lambda Expressions sollen kürzere und besser lesbare Schreibweise darstellen - Parameters => Body - => ist der Lambda Operator - Func<int, int, int> symbolisiert eine Funktion, die 2 int Objekte als Eingabe auf ein int Objekt abbildet

23 04 Welche Erweiterungen benötigt LINQ? 23 Lambda Expressions High Order Functions Func<int, bool> greatertwo = x => x > 2; Func< Func<int,bool>, int, int > myfunction = (f, x) => f(x)? x + 1 : 1; myfunc( greatertwo, 1 ); // 2 myfunc( greatertwo, 2 ); // 1 - Methoden die andere Methoden als Eingabewerte haben - Über Funktionszeiger (delegates) ist es möglich Methoden als Parameter zu übergeben - strenge Typisierung über Generics

24 04 Welche Erweiterungen benötigt LINQ? 24 Expression Trees - Expression Trees überführen ausführbaren Code in Daten - Expression ist ein DOM für abstract syntax trees - Expression Trees sehen diesen Baum als Daten Expression Trees sind kein ausführbarer Code - können mit der Methode Compile() zur Laufzeit in ausführbaren Code überführt werden

25 04 Welche Erweiterungen benötigt LINQ? 25 Expression Trees Expr< Func< int, int, int > > myexpression = (x,y) => x + y; Expression Parameters Body Binary Expression x y Left Right Parameter Expression Node Type: Add Parameter Expression x y

26 05 Wie funktioniert LINQ? 26

27 05 Wie funktioniert LINQ? 27 Operatoren - jede Abfrage beginnt mit: from element in LINQ-fähige-Datenquelle Restriction Projection Ordering Grouping Quantifiers Paritioning Sets Elements Aggregation Conversion Where Select, SelectMany OrderBy, ThenBy GroupBy Any, All Take, Skip, TakeWhile, SkipWhile Distinct, Union, Intersect, Except First, FirstOrDefault, ElementAt Count, Sum, Min, Max, Average ToArray, ToList, ToDictionary

28 05 Was ist LINQ? - Sprachgrundlagen 28 Ergebnisberchnung - Datenquelle und select geben an welchen Typ das Ergebnis hat LINQ-to-Objects LINQ-to-XML in-memory IEnumerable Delegates LINQ-to-SQL LINQ-to-Entities LINQ-to-Dataset delegiert IQueryable Expression- Tree

29 05 Wie funktioniert LINQ? 29 Ergebnisberchnung mit IQueryable - Bei einer delegierten LINQ-Abfrage wird ein Objekt des Typs IQueryable zurückgegeben - IQueryable repräsentiert den ExpressionTree der Anfrage mit zusätzlichen Informationen - erst wenn man mit dem Resultat arbeitet wird der Expression Tree in ausführbaren Code übersetzt und die Anfrage ausgeführt var query = from entry in dbcontext.addressbook where entry.lastname.startswith( P ) select entry; PrintValues( query ); //Hans Pech, Max Proll dbcontext.addressbook.add( new Entry( Lisa, Pech ); PrintValues( query ); //Hans Pech, Max Proll, Lisa Pech

30 05 Wie funktioniert LINQ? 30 Abfragetransformation - LINQ Keywords sind keine reservierten Keywords sondern kontextuell Keywords - Jedes LINQ Keyword hat eine äquivalente ExtensionMethod - Jede LINQ-Abfrage ist in eine äquivalente Form mit ExtensionMethods überführbar var query = from customer in Customers where customer.name.startswith( A ) select customer; var query = Customers.Where( c => c.name.startswith( A ) ).Select( c => c ); static IEnumerable<T> Where( this IEnumerable<T> source, Func<T,bool> predicate )

31 delegiert In-memory 05 Wie funktioniert LINQ? 31 Anfragetransformation var cust = from c in context.customers where c.name = Peter select c; LINQ Statement var cust = context.customers.where( c => c.name == Peter ); Lambda Expression abstract syntax tree SELECT C.* FROM Customers C WHERE C.Name = Peter Datenquellabhängige Anfrage

32 05 Wie funktioniert LINQ? 32 PLINQ Parallel Linq - deklarativer oder funktionaler Code lässt sich einfacher automatisch parallelisieren - PLINQ wird Teil des.net Frameworks 4.0 sein - Parallelisieren der Anfrageausführung von in-memory-datenquellen (Objects, XML etc.) var query = ( from customer in Customers where customer.name.startswith( A ) select customer ).AsParallel(2);

33 06 Warum LINQ? 33 Vorteile - Datenquellenunabhängige Abfragesprache - Vom Compiler lesbar (syntaktische Fehler werden zur Compile-/Entwicklungszeit erkannt) - Vom Entwickler lesbar (kürzerer und klarerer Quellcode) Nachteile - Erlernen einer neuen Technologie - zum Teil bringen LINQ-Provider spezifische Technologien mit, die man verwenden muss - zur Zeit kann man in einer Query nur eine delegierende Datenquelle verwenden

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

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

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

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

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

Inhalt. 1 LINQ Warum benötigen wir LINQ? WasistLINQ? Voraussetzungen für LINQ Wie ist das Buch aufgebaut?

Inhalt. 1 LINQ Warum benötigen wir LINQ? WasistLINQ? Voraussetzungen für LINQ Wie ist das Buch aufgebaut? Danksagung 11 1 LINQ 13 1.1 Warum benötigen wir LINQ? 14 1.2 WasistLINQ? 15 1.3 Voraussetzungen für LINQ 18 1.4 Wie ist das Buch aufgebaut? 19 2 UNOtoSOL 21 2.1 Entity-Klassen 22 2.1.1 Wichtige Attribute

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

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

Entwicklung der Programmiersprache C#

Entwicklung der Programmiersprache C# Language Day HDM 2015 Entwicklung der Programmiersprache C# Referent: Mikhail Orleanskiy, IT-Designers GmbH (orleanskiy@it-designers.de) Stand: 6. November 2015 Eine Präsentation der IT-Designers Gruppe

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

.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

Ü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

Delegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet

Delegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet Einführung Delegaten delegate ist ein Objekt, das delegiert == weiterleitet d. h. eine Tätigkeitsanforderung wird weitergeleitet - Weiterleitung erfolgt an eine Funktion - diese Funktion(en) wurde dem

Mehr

Typsystem Plattform- und Sprachenunabhängigkeit in.net

Typsystem Plattform- und Sprachenunabhängigkeit in.net Typsystem Plattform- und Sprachenunabhängigkeit in.net C# J# VB.NET Zwischencode CIL Windows Unix Auf welchen Grundlagen basiert dies? Komponenten & Frameworks Seite 1 Typsystem Grundlagen - CLR Common

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

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

Geschrieben von: Anson Horton Samstag, den 17. November 2007 um 17:35 Uhr - Aktualisiert Samstag, den 12. Januar 2008 um 05:47 Uhr

Geschrieben von: Anson Horton Samstag, den 17. November 2007 um 17:35 Uhr - Aktualisiert Samstag, den 12. Januar 2008 um 05:47 Uhr Dieser Artikel basiert auf einer Vorabversion von Visual Studio mit dem Codenamen Orcas. Er beschreibt das Feature LINQ das mit der kommenden Sprachversion C# 3.0 erscheinen wird. Der Artikel stammt teilweise

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

Seminar Softwarearchitekturen SoSe Martin Schrage

Seminar Softwarearchitekturen SoSe Martin Schrage Seminar Softwarearchitekturen SoSe 2011 Martin Schrage Gliederung 1. Common Language Infrastructur 2. Microsoft.NET 2.1Common Language Runtime 2.2 Programmausführung 2.3 Framework Class Library 2.4 Programmiersprachen

Mehr

Lambda Expressions in Java 8

Lambda Expressions in Java 8 Sie sind da Lambda Expressions in Java 8 Rolf Borst Lambda Expressions sind cool Aus dem Internet Stimmt das? Das total uncoole Beispiel Person nachname : String vorname : String alter : int plz : String

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

OCP Java SE 8. Lambda

OCP Java SE 8. Lambda OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur

Mehr

OCP Java SE 8. Lambda

OCP Java SE 8. Lambda OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur

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

LINQ im Einsatz HANSER. Fabrice Marguerie Steve Eichert Jim Wooley. щвщящ\ Mit einem Geleitwort on Watt Warren

LINQ im Einsatz HANSER. Fabrice Marguerie Steve Eichert Jim Wooley. щвщящ\ Mit einem Geleitwort on Watt Warren Fabrice Marguerie Steve Eichert Jim Wooley щвщящ\ LINQ im Einsatz Mit einem Geleitwort on Watt Warren Deutsche Übersetzung von Walter Doberenz HANSER Inhaltsverzeichnis Geleitwort 15 Vorwort 17 Danksagung

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

Inhaltsverzeichnis. Teil A Schnell zurechtfinden... 1

Inhaltsverzeichnis. Teil A Schnell zurechtfinden... 1 Inhaltsverzeichnis Ein nicht ganz so ernst gemeintes Vorwort... http://www.activedevelop.de Ein wenig Werbung in eigener Sache... Codebeispiele... Support... Danksagungen... XIII XV XVI XVI XVII Teil A

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

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

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1

Mehr

LINQ im Einsatz. von Walter Doberenz, Steve Eichert, Jim Wooley, Fabrice Marguerie. 1. Auflage. Hanser München 2008

LINQ im Einsatz. von Walter Doberenz, Steve Eichert, Jim Wooley, Fabrice Marguerie. 1. Auflage. Hanser München 2008 LINQ im Einsatz von Walter Doberenz, Steve Eichert, Jim Wooley, Fabrice Marguerie 1. Auflage Hanser München 2008 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41429 7 Zu Leseprobe schnell und

Mehr

9.5 Microsoft.NET

9.5 Microsoft.NET 9.5 Microsoft.NET http://www.microsoft.com/net http://msdn.microsoft.com/netframework Architektur: objektorientiert/fernaufrufe (8.1.6 ) IDL: (unsichtbare Metadaten, vom Übersetzer erzeugt) Dienste: (über

Mehr

Native Queries Datenbankabfragen in reinem Java. Carl Rosenberger Chief Software Architect, db4objects Inc. Java Forum Stuttgart 2006, 6.

Native Queries Datenbankabfragen in reinem Java. Carl Rosenberger Chief Software Architect, db4objects Inc. Java Forum Stuttgart 2006, 6. Native Queries Datenbankabfragen in reinem Java Carl Rosenberger Chief Software Architect, db4objects Inc. Java Forum Stuttgart 2006, 6. Juli 2006 1 Herkömmliche Datenbankabfragen sind nicht objektorientiert

Mehr

Grundlagen der OO- Programmierung in C#

Grundlagen der OO- Programmierung in C# Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3

Mehr

mitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage

mitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage mitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage Visual C# 2012 Martel schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung:

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

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 09: Funktionen höherer Ordnung Prof. Dr. Peter Thiemann, Manuel Geffken Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann, Manuel Geffken (Univ. Freiburg)

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

Validation und Quick Fixing mit Xtend. 3. Dezember 2014

Validation und Quick Fixing mit Xtend. 3. Dezember 2014 Validation und Quick Fixing mit Xtend 3. Dezember 2014 175 Überblick Tuning der Xtext-generierten Editoren Validierung mit OCL auf der abstrakten Syntax mit Xtend auf der konkreten Syntax Quick Fixes mit

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

Datenbankprogrammierung mit Microsoft LINQ

Datenbankprogrammierung mit Microsoft LINQ Datenbankprogrammierung mit Microsoft LINQ Leistungsfähige Datenmanipulation mit LINQ und Visual Basic und C# von Paolo Pialorsi, Marco Russo 1. Auflage Datenbankprogrammierung mit Microsoft LINQ Pialorsi

Mehr

Proseminar: C# und.net. 6. Vortag Generische Klassen. Sebastian Wolf

Proseminar: C# und.net. 6. Vortag Generische Klassen. Sebastian Wolf Proseminar: C# und.net 6. Vortag Generische Klassen Sebastian Wolf 1 Gliederung: 1. Einleitung 2. C# 2.0 3. Beschränkte Generizität 4. Generische Methoden 5. Überladene generische Klassen 6. Was passiert

Mehr

Spracherweiterungen und LINQ

Spracherweiterungen und LINQ Teil L Spracherweiterungen und LINQ In diesem Teil: Spracherweiterungen von C# 3.5 1153 LINQ 1169 1151 Kapitel 45 Spracherweiterungen von C# 3.5 In diesem Kapitel: Lokale Typinferenz 1154 Erweiterungsmethoden

Mehr

Objektorientierte Datenbanken Back to the future

Objektorientierte Datenbanken Back to the future Objektorientierte Datenbanken Back to the future Stefan Edlich Eine (zukunfts)kritische Bestandsaufnahme am Beispiel von db4o 05.12.06 Speaker Professor fü r Softwaretechnik in Berlin Autor des Apress

Mehr

Vorlesung Datenbanken II SS 2006

Vorlesung Datenbanken II SS 2006 Vorlesung Datenbanken II SS 2006 1 Vorlesung Datenbanken II SS 2006 Sven Wachsmuth, Technische Fakultät, AG Angewandte Informatik Vorlesung Datenbanken II SS 2006 2 3.4 ODBMS: ODMG Datenmodell ODMG Interface

Mehr

Abschnitt 10: Typisierte Klassen

Abschnitt 10: Typisierte Klassen Abschnitt 10: Typisierte Klassen 10. Typisierte Klassen 10.1 Einführung: Grenzen der Typ-Polymorphie durch Vererbung 10.2 Grundlagen 10.3 Vererbung bei typisierten Klassen 10.4 Wildcards, obere und untere

Mehr

11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Design Patterns Wozu werden Design Patterns verwendet? Wann

Mehr

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

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

13. Funktionale Konzepte in Java

13. Funktionale Konzepte in Java Funktionale vs. Imperative Programmierung 13. Funktionale Konzepte in Java Funktionale Programmierung, Lambda Ausdrücke, Datenströme, Pipelines Imperative Konzepte Ausführen von Anweisungen Zustand (z.b.

Mehr

2. Unterprogramme und Methoden

2. Unterprogramme und Methoden 2. Unterprogramme und Methoden Durch Methoden wird ausführbarer Code unter einem Namen zusammengefasst. Dieser Code kann unter Verwendung von sogenannten Parametern formuliert sein, denen später beim Aufruf

Mehr

C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue

C# - Einführung in die Programmiersprache Fehler abfangen. Leibniz Universität IT Services Anja Aue C# - Einführung in die Programmiersprache Fehler abfangen Leibniz Universität IT Services Anja Aue Fehler in einem Programm Warnungen sind Hinweise auf eventuelle Fehler während der Laufzeit des Programms.

Mehr

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 861

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 861 Überblick 9. 9.1 Vererbung, abstrakte Klassen, Polymorphismus 9.2 Interfaces 9.3 Ausnahmen 9.4 Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 790 / 861 Grundlegendes zu Typsystemen

Mehr

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein

Delegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat

Mehr

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen Agenda für heute, 1. April, 2010 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative

Mehr

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler Inhalt Was ist.net Was steckt dahinter Warum ist.net so wie es ist Die Säulen von.net.net Framework 2.0 / VisualStudio 2005 Beispiel Referenzen & Links

Mehr

Kapitel 10 Delegationsvariablen

Kapitel 10 Delegationsvariablen Kapitel 10 Delegationsvariablen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Wie werden

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

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

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

Einführung in die Programmiersprache C#

Einführung in die Programmiersprache C# Einführung in die Programmiersprache C# C# Übersicht Einführung in das.net Framework Konzepte / Architektur Einführung in C#, speziell Unterschiede zu Java .NET: Framework, Sprachen und Werkzeuge .NET

Mehr

Grundlegende Datentypen

Grundlegende Datentypen Grundlegende Datentypen Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 22.10.2018 10:53 Grundlegende Datentypen 1/21 Typen in Haskell ist alles streng typisiert Haskell verfügt über

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

Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware VDMS

Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware VDMS Stephan Püngel Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware sübersicht Einstieg Vorstellung als Rich Internet Application Technologie

Mehr

Objektbasierte 1:n-Navigation: Ein Vergleich zwischen externer Iteration und LINQ

Objektbasierte 1:n-Navigation: Ein Vergleich zwischen externer Iteration und LINQ FernUniversität in Hagen Fakultät für Mathematik und Informatik Lehrgebiet Programmiersysteme Prof. Dr. Friedrich Steimann Objektbasierte 1:n-Navigation: Ein Vergleich zwischen externer Iteration und LINQ

Mehr

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List

Mehr

Polymorphismus 44. Function.hpp. #include <string>

Polymorphismus 44. Function.hpp. #include <string> Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class

Mehr

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine

Mehr

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten.

Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. 4.5.5 Rekursive Typen Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. datatype IntList = Nil Cons o f ( i n t IntList ) ; Damit

Mehr

Überblick. Peter Sobe 1

Überblick. Peter Sobe 1 Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

ALP I. Funktionale Programmierung

ALP I. Funktionale Programmierung ALP I Funktionale Programmierung Typ-Klassen und SS 2011 Überladung von Datentypen Funktionen sollen oft auf verschiedene Datentypen anwendbar sein, aber nicht auf beliebige Datentypen. Beispiel: Die (+)

Mehr

Objektorientiertes Programmieren mit.net und C# Proseminar im Wintersemester 2010/2011 LINQ Verstehen und Einsetzen

Objektorientiertes Programmieren mit.net und C# Proseminar im Wintersemester 2010/2011 LINQ Verstehen und Einsetzen Objektorientiertes Programmieren mit.net und C# Proseminar im Wintersemester 2010/2011 LINQ Verstehen und Einsetzen Georg Wagner Technische Universität München Abstract: LINQ ist eine Sammlung von Spracherweiterungen

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics

Mehr

Variablen und Parameter

Variablen und Parameter D3kjd3Di38lk323nnm Variablen und Parameter Eine Variable repräsentiert einen Speicherbereich, der einen veränderbaren Wert enthält. Eine Variable kann eine lokale Variable, ein Parameter (value, ref oder

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Funktionale Programmierung in Java

Funktionale Programmierung in Java Funktionale Programmierung in Java Lambda Calculus Übersicht Geschichte Konzepte Lambda-Ausdrücke funktionale Interfaces Streams + Operations Methodenreferenzen Geschichte der funktionalen Programmierung

Mehr

Objektorientierte Datenbanken

Objektorientierte Datenbanken OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz

Mehr

ASP.NET 3.5 mit AJAX

ASP.NET 3.5 mit AJAX ASP.NET 3.5 mit AJAX von Patrick A. Lorenz, Jana Frank, Dr. Holger Schwichtenberg 1. Auflage Hanser München 2008 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41199 9 Zu Leseprobe schnell und

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

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Mehr

101 011 Madrid 01110 Amsterdam 0110 010 011011011 01 0110 01111010 01101 011011 0110 011

101 011 Madrid 01110 Amsterdam 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 101 011 01110 0110 010 011011011 01 0110 01111010 01101 011011 0110 011 10 01101110 Jürgen 01110 Kotz 0110 0110 0110 10 01101 011 01110 0110 010 011011011 0 10 01111010 01101 011011 0110 0110 01110 011011101

Mehr

Datenbank-Programmierung mit Visual Basic 2012 (Buch + E-Book)

Datenbank-Programmierung mit Visual Basic 2012 (Buch + E-Book) Datenbank-Programmierung mit Visual Basic 2012 (Buch + E-Book) Grundlagen, Rezepte, Anwendungsbeispiele von Walter Doberenz, Thomas Gewinnus 1. Auflage Datenbank-Programmierung mit Visual Basic 2012 (Buch

Mehr

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen

Objektorientierte Programmierung. Agenda für heute, 26. März, Eines der drei wichtigsten Programmierparadigmen Agenda für heute, 26. März, 2009 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative

Mehr

~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1.

~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1. ~±] 1 C# und das.net-framework 1 1.1 Ähnlichkeiten zwischen C# und Java 1 1.2 Unterschiede zwischen C# und Java 2 1.3 Das.NET-Framework 4 1.4 Übungsaufgaben 9 2 Erste Schritte 11 2.1 Hello World 11 2.2

Mehr

Ein XML Dokument zeichnet sich im Wesentlichen durch seine baumartige Struktur aus:

Ein XML Dokument zeichnet sich im Wesentlichen durch seine baumartige Struktur aus: RDF in wissenschaftlichen Bibliotheken 5HWULHYDODXI5') Momentan existiert noch keine standardisierte Anfragesprache für RDF Dokumente. Auf Grund der existierenden XML Repräsentation von RDF liegt es jedoch

Mehr

Prof. Dr. Uwe Schmidt. 17. August Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353)

Prof. Dr. Uwe Schmidt. 17. August Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353) Prof. Dr. Uwe Schmidt 17. August 2010 Aufgaben zur Klausur C und Objektorientierte Programmierung im SS 2010 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre

Mehr

.NET 3.5. VB 008 d P. J HANSER WP,, I 008

.NET 3.5. VB 008 d P. J HANSER WP,, I 008 Walter Doberenz, Matthias Fischer Jana Frank, Thomas Gewinnus Jorg Krause, Patrick A. Lorenz Jorg Neumann, Holger Schwichtenberg.NET 3.5 WP,, I 008 VB 008 d P. J HANSER 1.NET 3.5 und Visual Studio 2008

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Stack stack = new Stack(); stack.push ("Würstchen"); string s = (string) stack.pop(); Console.WriteLine (s);

Stack stack = new Stack(); stack.push (Würstchen); string s = (string) stack.pop(); Console.WriteLine (s); D3kjd3Di38lk323nnm Der Typ object object (System.Object) ist die Ausgangsbasisklasse für alle Typen. Jeder Typ kann per Upcast in ein object umgewandelt werden. Um zu zeigen, wie das nützlich sein kann,

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

Inhaltsverzeichnis .NET 3.5. WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX. Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41045-9

Inhaltsverzeichnis .NET 3.5. WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX. Herausgegeben von Holger Schwichtenberg ISBN: 978-3-446-41045-9 sverzeichnis Walter Doberenz, Matthias Fischer, Jana Frank, Thomas Gewinnus, Jörg Krause, Patrick A. Lorenz, Jörg Neumann, Holger Schwichtenberg.NET 3.5 WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX

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

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung Teil 10: Typsicherheit durch generische Typen Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Grundlagen 2. Typvariablen 3.

Mehr

Dynamische Webseiten mit PHP. Oder: LAMP - The open way

Dynamische Webseiten mit PHP. Oder: LAMP - The open way Dynamische Webseiten mit PHP Oder: LAMP - The open way Verbreitung Neben ASP verbreitetste Web-Scripting-Umgebung LAMP (Linux, Apache, mysql, PHP): freie Alternative zu M$ Überblick Dynamische Webseiten

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr