C# (pronounced "C Sharp"||"C#") is a multi-purpose computer programming language suitable for a wide variety of development needs. This Wikibook introduces C# language fundamentals and covers a variety of the base class libraries (BCL) provided by the Microsoft .NET Framework.
Introduction
- Main introduction: C Sharp Programming/Foreword
Although C# is derived from the C programming language, it introduces some unique and powerful features, such as delegates (which can be viewed as type-safe function pointers) and lambda expressions which introduce elements of functional programming languages, as well as a simpler single class inheritance model (than C++) and, for those of you with experience in "C-like" languages, a very familiar syntax that may help beginners become proficient faster than its predecessors. Similar to Java, it is object-oriented, comes with an extensive class library, and supports exception handling, multiple types of polymorphism, and separation of interfaces from implementations. Those features, combined with its powerful development tools, multi-platform support, and generics, make C# a good choice for many types of software development projects: rapid application development projects, projects implemented by individuals or large or small teams, Internet applications, and projects with strict reliability requirements. Testing frameworks such as NUnit make C# amenable to test-driven development and thus a good language for use with Extreme Programming (XP). Its strong typing helps to prevent many programming errors that are common in weakly typed languages.
- Foreword
- A description of the C# language and introduction to this Wikibook.
- Getting started with C#
- A simple C# program and where to get tools to compile it.
Basics
- Basic syntax
- Describes the basics in how the applications you write will be interpreted.
- Naming conventions
- Quickly describes the generally accepted naming conventions for C#.
- Variables
- The entities used to store data of various shapes.
- Operators
- Summarizes the operators, such as the '+' in addition, available in C#.
- Data structures
- Enumerations, structs, and more.
- Control statements
- Loops, conditions, and more. How the program flow is controlled.
- Exceptions
- Responding to errors that can occur.
Classes
- Namespaces
- Giving your code its own space to live in.
- Classes
- The blueprints of objects that describes how they should work.
- Objects
- Cornerstones of any object-oriented programming language, objects are the tools you use to perform work.
- Encapsulation and accessor levels
- Explains protection of object states by encapsulation, or the bundling of an object's data and functionality.
Advanced Topics
- Inheritance
- Re-using existing code to improve or specialize the functionality of an object.
- Interfaces
- Define a template, on which to base sub-classes.
- Delegates and Events
- Learn about delegates, anonymous delegates, lambda expressions, and events.
- Abstract classes
- Build partially implemented classes.
- Partial classes
- Split a class over several files to allow multiple users to develop, but also to stop code generators interfering with source code.
- Generics
- Allow commonly used collections and classes to appear to have specialization for your custom class.
- Extension methods
- Extend the functionality of existing types.
- Object Lifetime
- Learn about the lifetime of objects, where they are allocated and learn about garbage collection.
- Design Patterns
- Learn commonly used design methodologies to simplify and/or improve your development framework.
The .NET Framework
- .NET Framework Overview
- An overview of the .NET class library used in C#.
- Console Programming
- Input and Output using the console.
- Windows Forms
- GUI Programming with Windows Forms.
- Collections
- Effectively manage (add, remove, find, iterate, etc.) large sets of data.
- Threading
- Learn how to run code concurrently and how to synchronize code.
- Marshalling
- Communicating with unmanaged code
Examples
Keywords
C# Keywords | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Special C# Identifiers (Contextual Keywords) | |||||||||||||||
| |||||||||||||||
Contextual Keywords (Used in Queries) | |||||||||||||||
|
External links
- C# Tutorial
- An Introduction to Mono Development by Andrew Troelsen
- C# Environment setup Visual C# environment setup details from MSDN
- C# FAQ C# FAQ, Blogs and Forums.
- C# Language Specification download page at ECMA
- C# Programming Tutorial
- C# Programming Tutorial Collection
- C# Yellow Book (via pdf download)
- Microsoft Visual Studio Community Edition : A free development environment created by Microsoft.
- Mono Project : C# Development Environment for Linux, Windows, and other platforms.