.NET news » C# 
What's New in C# 3.0? Part 1
With the release of Visual Studio 2008, Microsoft has updated the C# language to its latest version, 3.0. C# 3.0, contains several key language enhancements that support the recently-announced Language Integrated Query (LINQ) feature. This article, the first of a two-part series, will walk you through each of these new, time-saving language enhancements and provide a couple of code examples illustrating how to use them.
C# Relational Operator Overloading
The eleventh article in the C# Object-Oriented Programming tutorial furthers the investigation of operator overloading. This time the overloading of the relational operators is described, allowing custom classes to be included in comparison operations.
C# Indexers
The thirteenth part of the C# Object-Oriented Programming tutorial describes the use of indexers. A class that has an indexer can be used in a similar manner to an array. Objects of the class can use array-style notation to present multiple values.
Casting and passing anonymous types
C# 3.0: how to pass an anonymous types, and how to cast them.
C# 3.0 Syntax Additions-Design Guidelines
C# 3.0 includes a few syntactical additions to the language. For the most part, Microsoft added these language additions to support Language Integrated Query (LINQ). These features include (but are not limited to) lambda expressions, extensions methods, anonymous types, implicitly typed local variables, automatic properties, and object initializers.
C# Basic Operator Overloading
The eighth article in the C# Object-Oriented Programming tutorial describes a third overloading technique. By overloading the functionality of operators, the operation of the standard operators including + and - can be defined for new classes.
Overloading True and False in C#
The ninth article in the C# Object-Oriented Programming tutorial continues the discussion of operator overloading. In this article, the overloading of the true and false operators is described, allowing an object to be used in conditional processing.
Marking C# Code As Obsolete
As class libraries evolve over time, new functionality will be added and existing classes, methods and properties will be improved. Sometimes this means that older code is superseded and it is preferable that it is marked as obsolete and no longer used.
Working with Nullable Types in C#
Use nullable types to assign null values to value types and avoid run-time exceptions in your applications.
Throwing Exceptions in C#
The thirty-fifth part of the C# Fundamentals tutorial completes an investigation of exception handling. In this article we will consider the throwing of exceptions to report error conditions. This includes the use of standard and custom exception types.

