Master C# Programming with Free Open-Source Books

C# Books

C# (pronounced “See Sharp”) is a multi-purpose computer programming language suitable for a wide variety of development needs.

C# combines the power and flexibility of C++ with the simplicity of Visual Basic. It encompasses strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines with support for the concepts of encapsulation, inheritance, and polymorphism. It incorporates many elements of the expression and statement syntax of C, and has a more refined object-oriented programming syntax than C++.

C# is one of the more popular programming languages, but is not as widely used as say C, Java, C++ or PHP.

We have published a series covering the best open source programming books for other popular languages. Read them here.

The C# Book is a book that teaches you how to program using C#. It’s the basis of the first year programming course at the Department of Computer Science in the University of Hull.

Chapters cover:

Computers and Programs – find out what a computer is and get an understanding of the way that a computer program tells the computer what to do. Discover what you should do when starting to write a program. The chapter finishes with a look at programming in general and the C# language in particular

Simple Data Processing – create a genuinely useful program. Start by creating a very simple solution and investigate the C# statements that perform basic data processing. The author then uses additional features of the C# language to improve the quality of the solution

Creating Programs – build on our programming abilities to make programs that are broken down into manageable chunks and find out how a program can store and manipulate large amounts of data using arrays

Creating Solutions – a case study which will allow you to see the features of C# in a strong context

This book is designed for beginners. It teaches the reader to think like a programmer and the C# language is just a tool that can be replaced by any other modern programming languages, such as Java, C++, PHP or Python. This is a book on programming, not a book on C#.

The book was originally written in the Bulgarian language by a large team of volunteer software engineers and subsequently translated into English.

.NET Book Zero – What the C or C++ Programmer Needs to Know About C# and the .NET Framework is a book that provides an introduction to C# and the Microsoft .NET Framework for programmers who have experience with C or C++.

Instance Methods – when a method declaration does not include a static modifier, the method is said to be an instance method

Constructors – enable the programmer to set default values, limit instantiation, and write code that is flexible and easy to read

Concepts of Equality – explore in more depth the differences between classes (reference types) and structures (value types)

Fields and Properties – classes and structures have several types of members, most notably fields, methods, constructors, and properties

Inheritance – one of the primary features of object-oriented programming. Inheritance provides a structured way to reuse code that has already been written, but inheritance also provides a way to alter or enhance the code in ways that make it more useful or convenient

Virtuality

Operator Overloading – permits user-defined operator implementations to be specified for operations where one or both of the operands are of a user-defined class or struct type

Interfaces – an interface contains definitions for a group of related functionalities that a class or a struct can implement

Interoperability – enables you to preserve and take advantage of existing investments in unmanaged code

Dates and Times – a particular moment in time is represented by an object of type DateTime, a structure defined in the System namespace

Events and Delegates

Files and Streams

String Theory

Generics – a new feature in version 2.0 of the C# language and the common language runtime (CLR). Generics introduce to the .NET Framework the concept of type parameters, which make it possible to design classes and methods that defer the specification of one or more types until the class or method is declared and instantiated by client code

Nullable Types – instances of the System.Nullable struct

This book is freely distributable.

Here are good free-to-download programming books which are not released under an open source license.

About The Author

Steve Emms is the main author of OSSBlog.org. This site aims to promote open source software and hardware. Steve has written thousands of articles about open source software. He is also the creator of LinuxLinks.com.