C Sharp Programming
C#1 (pronounced "See Sharp") is a multi-purpose computer programming language2 suitable for all development needs.
Although C# is derived from the C programming language3, it has features such as garbage collection4 that allow beginners to become proficient in C# more quickly than in C5 or C++6. Similar to Java7, it is object-oriented8, comes with an extensive class library, and supports exception handling, multiple types of polymorphism9, 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 development10 projects, projects implemented by individuals or large or small teams, Internet applications, and projects with strict reliability requirements. Testing frameworks such as NUnit11 make C# amenable to test-driven development12 and thus a good language for use with Extreme Programming13 (XP). Its strong typing14 helps to prevent many programming errors that are common in weakly typed languages. Because of this similarities to other languages, it is possible to introduce C# as a language with features of C++ having the programming style of Java and the rapid application model of BASIC.15
A large part of the power of C# (as with other .NET languages), comes with the common
.NET Framework API, which provides a large set of classes, including ones for encryption, TCP/IP socket programming, and graphics. Developers can thus write part of an application in C# and another part in another .NET language (e.g. VB.NET), keeping the tools, library, and object-oriented development model while only having to learn the new language syntax.