This is a teaching material about object-oriented programming, illustrated with use of the programming language C#.
It is assumed, as a prerequisite, that the readers have some knowledge about imperative programming, preferably knowledge about C.
I believe that it is best to learn object-oriented programming after having learned and worked with imperative programming. Thus, we adhere to an "object later approach".
This open book is licensed under a Open Publication License (OPL). You can download Object-oriented Programming in C# ebook for free in PDF format (3.1 MB).
Table of Contents
Introduction to Object-oriented Programming
Introduction to C#
Classes and Objects
Reference types, Value types, and Patterns
Data Access, Properties, and Methods
Operators, Delegates, and Events
Specialization, Extension, and Inheritance
Abstract classes, Interfaces, and Patterns
Input and Output Classes
Generic Types and Methods
Contracts and Assertions
Test of Object-oriented Programs
Documentation of Object-oriented Programs
An Introduction to LINQ