The reason is to use the .NET platform. C# is, as far as I know, still the only language designed from the ground up to be a .NET language. It's that platform that has support and tooling for most anything you'd want to do on a Windows workstation or server.
Qwerty mentioned Mono, but that's just (a...
Best answer: The reason is to use the .NET platform. C# is, as far as I know, still the only language designed from the ground up to be a .NET language. It's that platform that has support and tooling for most anything you'd want to do on a Windows workstation or server.
Qwerty mentioned Mono, but that's just (a large subset of) the .NET platform implemented for use on non-Windows platforms. Its primary reason for existence is to allow porting of .NET applications to run outside of Windows. There are plenty of ways to go the other way, using some other cross-platform technology from the start, to get non-Windows apps to run in Windows.
.NET is first and foremost a platform for Windows applications; and C# doesn't have any non-.NET implementations AFAIK.
As for learning it, you'll find out that, at the "Hello World" anyway, C# looks and feels very much like Java with a slightly different boilerplate, a static method named Main() instead of main(), and Console.WriteLine instead of System.out.println. The differences grow once you start digging deeper. My son is probably an extreme example, but C# is his favorite language, and he detests working in Java. I think both are okay, finding C# more "powerful" in terms of native language features, but Java seems more internally consistent and, well, less "quirky" I guess.
A good place to start, I think, is with a recent edition of "Microsoft Visual C# xxxx Step-By-Step" by John Sharp. (Gotta love that name for an author of a C# book, right?) The "xxxx" is the Visual Studio version (2010, 2013, etc.) that the text was written for. It's a good, comprehensive look at the C# language, but maybe a bit light on .NET coverage. You can get WIndows Forms intros in most C# online tutorials. That's the original GUI toolkit, still useful but mostly deprecated in favor of the newer Windows Presentation Foundation (WPF), followed by major changes in terminology with Windows Runtime (Win 8, 8.1) and the Universal Windows Platform (Win 10). So far, nearly all the old stuff is supported, and there's a lot to learn. Most will depend on what "legacy" software exists at the place that hires you.
The docs.microsoft.com site (formerly MSDN) will be your friend (and nemesis, sometimes) for as long as you develop for Windows. And Stack Overflow.
6 days ago