C# was designed to be simple, easy to program with, and versatile. It first appeared in 2000. It is an object oriented language, and features other programming styles also. Emphasis was placed on making C# work well within the integrated Windows software (called Visual Studio) for developing C# (and other .NET languages such as VB.NET for that matter). Visual Studio allows the programmer to do software related tasks such as test and run software, edit and manage source files and build software. Java programmers often use Eclipse which like Visual Studio is another Integrated Development Environment (IDE).
For those that have used both Java and C#, an impression is that they are very similar languages. The source code looks and feels the same. Often the same names are used to describe language features and constructs. Architecturally they are similar. Both compile code to an intermediate stage then a virtual machine (JVM or the CLR part of .NET) execute the intermediate code.
C# is one of many languages supported under the .NET Framework. C++/CLI and VB.NET are the other widely used .NET languages. C# was the first programming language designed from the onset to be CLI compliant. Existing languages such as C++ and Visual Basic required new CLI compliant versions of the language to run under .NET.
Being a member of the .NET club gives C# some benefits-:
.NET handles memory and resource management (complex issues for programmers) for C#, making the C# language far easier to write code for.
.NET itself manages all the platform specific issues. C# source code running on any .NET platform will remain unchanged.
Any .NET language application can communicate with another application (possibly written in a different .NET language). .NET applications can communicate to different machines across the connected network.
.NET's Base Class Library is shared by all .NET applications. The libraries are extensive.