Programming Concepts (C#)

This section explains programming concepts in the C# language.

In This Section

Title Description
Assemblies and the Global Assembly Cache (C#) Describes how to create and use assemblies.
Asynchronous Programming with async and await (C#) Describes how to write asynchronous solutions by using the async and await keywords in C#. Includes a walkthrough.
Attributes (C#) Discusses how to provide additional information about programming elements such as types, fields, methods, and properties by using attributes.
Caller Information (C#) Describes how to obtain information about the caller of a method. This information includes the file path and the line number of the source code and the member name of the caller.
Collections (C#) Describes some of the types of collections provided by the .NET Framework. Demonstrates how to use simple collections and collections of key/value pairs.
Covariance and Contravariance (C#) Shows how to enable implicit conversion of generic type parameters in interfaces and delegates.
Expression Trees (C#) Explains how you can use expression trees to enable dynamic modification of executable code.
Iterators (C#) Describes iterators, which are used to step through collections and return elements one at a time.
Language-Integrated Query (LINQ) (C#) Discusses the powerful query capabilities in the language syntax of C#, and the model for querying relational databases, XML documents, datasets, and in-memory collections.
Object-Oriented Programming (C#) Describes common object-oriented concepts, including encapsulation, inheritance, and polymorphism.
Reflection (C#) Explains how to use reflection to dynamically create an instance of a type, bind the type to an existing object, or get the type from an existing object and invoke its methods or access its fields and properties.
Serialization (C#) Describes key concepts in binary, XML, and SOAP serialization.
Performance Tips Discusses several basic rules that may help you increase the performance of your application.