Re: WHY c#??
Remeber this, C# accesses the Win32 API. Programming in C using <windows.h> gives you direct access to the Win32 API, hence your programs will be compiled to native machine code and faster. C# programs on the other hand are compiled to a device independent bytecode which is then executed on a virtual machine which runs ontop of Windows.
If you want to make a video application or game, use C/C++ Device drivers as an example cannot be written in C#, only C/C++.
If you want to make a windows application like a P2P client or some other web services, XML, etc, etc, use C#, though you could also do this with C/C++.
- Jayson