Mit C# wirst du hauptsächlich Anwendungssoftware entwickeln können. Und das mit voller Unterstützung bis jetzt nur unter Windows. Das
[Only registered and activated users can see links. Click Here To Register...] ermöglicht es jedoch auch, begrenzt, deine C# Anwendungen auf anderen Plattformen laufen zu lassen.
Willst du dann eher in Richtung systemnahe Programmierung, dann schau dir C oder C++ an. Mit C++ zum Beispiel kannst du auch Spiele, Anwendungssoftware programmieren, bist aber wesentlich näher an der Hardware, sodass es auch möglich ist für kleinere Controller Programme zu schreiben.
Dazu würde ich dir aber eher empfehlen C zu lernen, da du in diesem Gebiet zu 90% auf alten C-Code stoßen wirst und C und C++ sich doch manchmal auch unterscheiden, sodass du beim durchforsten alter Quellcodes deine Schwierikeiten haben wirst diese zu verstehen, wenn du "nur" C++ gelernt hast. C eignet sich für Spiele jedoch nicht sehr gut. C kennt z.B. per se keine Klassen und das OOP Konzept erleichtert das Programmieren ungemein. Spiele in C zu programmieren ist sehr anstrengend imho.
Alles in allem könnte man zu C++ raten, da du damit so ziemlich alles (mit mehr oder weniger Aufwand) programmieren kannst. Mit C# und XNA wirst du schneller Erfolge erzielen und dir würde es später sicher leichter fallen C++ zu lernen.
Wenn du zu C# tendierst, könntest du auch über Java nachdenken. Beide Sprachen sind sehr ähnlich, Java aber plattfornunabhängig.