© DrHitch/Shutterstock.com
Shortcuts
F#

5 .NET-kompatible Klassen

Wie schon in der Einleitung angesprochen, wird F# gern eine hybride Programmiersprache genannt, da sie Paradigmen aus unterschiedlichen Zweigen der Evolution von Programmiersprachen vereint. Zu den Paradigmen, die F# unterstützt, gehört auch die objektorientierte Programmierung.

Shortcut Autorenteam


Manchmal stellen Programmierer infrage, ob Microsoft den Weg hätte gehen sollen, diese Unterstützung in F# zu ermöglichen. Das ist allerdings eine etwas kurzsichtige Frage, da F# schließlich auf dem .NET-Framework und seiner Laufzeitumgebung aufsetzt. Diese Plattform ist in ihrem Kern, also von der niedrigsten Ebene an aufwärts, objektorientiert strukturiert. Wenn eine Sprache auf dieser Plattform aufsetzen und die darin enthaltene Funktionalität für den Programmierer verfügbar machen möchte, ist es unumgänglich, zumindest die Anwendung objektorientierter APIs zu ermöglichen. In vielen Fällen sind diese APIs allerdings so gestaltet, dass die Implementierung neuer Klassen und Schnittstellen nötig ist, um mit existierender Infrastruktur zu interagieren. Microsoft sah die Notwendigkeit für F#-Programmierer, Klassen von existierenden .NET-Klassen abzuleiten, Interfaces zu implementieren und Lambda-Ausdrücke zu erzeugen, die mit solchen aus anderen .NET- Programmiersprachen kompatibel sind, um voll von der Entscheidung für .NET profitieren zu können. Eine gute Entscheidung! Im funktionalen Bereich ist F# heute die Sprache mit der wohl umfangreichsten Laufzeitbibliothek, eben weil sie auf die existierende Plattform .NET zugreifen kann.Im objektorientierten Bereich unterstützt F# fast alle Ansätze, die etwa auch von C# implementiert werden. An dieser Stelle geht es zunächst um die Implementierung von Klassen, die sich mit Standard-.NET-Bibliotheken verwenden lassen − stellvertretend dafür ASP.NET MVC. Auf dieser Plattform werden so genannte Modellklassen verwendet, die Daten repräsentieren. Dabei handelt es sich um einfache Klassen, die Sie sicherlich schon einmal in C# oder VB.NET programmiert haben.Ein einfaches Stück Code, das eine Klasse erzeugt und dann verwendet, könnte etwa so aussehen:type Car() = member x.Move() = printfn "The car is moving"let car = Car()car.Move()Das Schlüsselwort type dient zur Deklaration neuer Typen, darunter auch Klassen. Es wird gefolgt vom Namen der Klasse und optional einer Parameterliste. Die hier verwendeten Parameter müssen bei der der Instanziierung der Klasse angegeben werden. Die Klasse Car hat hier zunächst keine solchen Parameter und kann deshalb in der dritten Zeile ohne Parameterübergabe instanziiert werden. Mit dem Schlüsselwort member wird die Deklaration einer Klassenmethode eingeleitet. Der Name dieser Methode ist Move, und das x ist die Selbstreferenz auf die neue Klasseninstanz. In F# legen Sie den Namen dies...

Shortcuts
F#

5 .NET-kompatible Klassen

Wie schon in der Einleitung angesprochen, wird F# gern eine hybride Programmiersprache genannt, da sie Paradigmen aus unterschiedlichen Zweigen der Evolution von Programmiersprachen vereint. Zu den Paradigmen, die F# unterstützt, gehört auch die objektorientierte Programmierung.

Shortcut Autorenteam


Manchmal stellen Programmierer infrage, ob Microsoft den Weg hätte gehen sollen, diese Unterstützung in F# zu ermöglichen. Das ist allerdings eine etwas kurzsichtige Frage, da F# schließlich auf dem .NET-Framework und seiner Laufzeitumgebung aufsetzt. Diese Plattform ist in ihrem Kern, also von der niedrigsten Ebene an aufwärts, objektorientiert strukturiert. Wenn eine Sprache auf dieser Plattform aufsetzen und die darin enthaltene Funktionalität für den Programmierer verfügbar machen möchte, ist es unumgänglich, zumindest die Anwendung objektorientierter APIs zu ermöglichen. In vielen Fällen sind diese APIs allerdings so gestaltet, dass die Implementierung neuer Klassen und Schnittstellen nötig ist, um mit existierender Infrastruktur zu interagieren. Microsoft sah die Notwendigkeit für F#-Programmierer, Klassen von existierenden .NET-Klassen abzuleiten, Interfaces zu implementieren und Lambda-Ausdrücke zu erzeugen, die mit solchen aus anderen .NET- Programmiersprachen kompatibel sind, um voll von der Entscheidung für .NET profitieren zu können. Eine gute Entscheidung! Im funktionalen Bereich ist F# heute die Sprache mit der wohl umfangreichsten Laufzeitbibliothek, eben weil sie auf die existierende Plattform .NET zugreifen kann.Im objektorientierten Bereich unterstützt F# fast alle Ansätze, die etwa auch von C# implementiert werden. An dieser Stelle geht es zunächst um die Implementierung von Klassen, die sich mit Standard-.NET-Bibliotheken verwenden lassen − stellvertretend dafür ASP.NET MVC. Auf dieser Plattform werden so genannte Modellklassen verwendet, die Daten repräsentieren. Dabei handelt es sich um einfache Klassen, die Sie sicherlich schon einmal in C# oder VB.NET programmiert haben.Ein einfaches Stück Code, das eine Klasse erzeugt und dann verwendet, könnte etwa so aussehen:type Car() = member x.Move() = printfn "The car is moving"let car = Car()car.Move()Das Schlüsselwort type dient zur Deklaration neuer Typen, darunter auch Klassen. Es wird gefolgt vom Namen der Klasse und optional einer Parameterliste. Die hier verwendeten Parameter müssen bei der der Instanziierung der Klasse angegeben werden. Die Klasse Car hat hier zunächst keine solchen Parameter und kann deshalb in der dritten Zeile ohne Parameterübergabe instanziiert werden. Mit dem Schlüsselwort member wird die Deklaration einer Klassenmethode eingeleitet. Der Name dieser Methode ist Move, und das x ist die Selbstreferenz auf die neue Klasseninstanz. In F# legen Sie den Namen dies...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang