C# derives much of its syntax and construct from Java but with the addition of powerful low-level features from C and C++.
It was the language of choice when Microsoft developed it's new .NET application development framework, which replaced MFC as the standard programming interface to Windows functionality. Whereas MFC provided a C++ wrapper around Windows operations, .NET provided a C# wrapper.
It is called C# because it is even more '++' than C++. C became C++, C++ became C++,++. Instead of writing C++++ it is easier to combine the pluses into a single character #.