Honestly, I'm biased because professionally and personally I'm a C# developer, but I think it's a really good language to get into, especially if you're starting out. Reasons why:
1. Clean, modern syntax.
2. Learn C#, then it's not that hard to go to Java, or C++. Same can be said of those other two, I guess. But certainly better than learning Flash or BASIC, especially if you're interested in getting into general application development.
3. Unlike Java, you get more flexibility when dealing with memory (value types, non-heap allocated objects)
4. Unlike Java, it's really easy to do unmanaged-to-managed interop, so it's a lot easier to use that native library you see your eye on.
5. Unlike C++, the memory model is a bit easier because its managed, but of course you lose flexibility as a consequence (doesn't impact a beginner in my opinion, in fact quite the opposite! More apt to blow your foot off).
6. Like Java, C# has a rich standard library to draw upon.
7. .NET is limited to Microsoft platforms (Windows, and windows derivative). There is Mono, the open source implementation of .NET, as well as Xamarin which gets you Android and even iOS.
I'm not a game developer, I work on CAD products, which we use a combination of C++, C++/CLI, and C# (I lean more to the managed side of things on that spectrum). And in my own time, I use C# for graphics projects. So in my opinion, it's a great language for games, graphics, general applications, what have you.
Also since you're a beginner, I highly recommend starting small and sticking to one thing. Saying you want to develop for pc, for web, for mobile, etc can stretch you too thin where you're chasing too many rabbits and you wind up not learning a whole lot. I would stick with just one platform - PC, to gain experience in how to put together an application, then branch out. Especially if you're interested in general application development.