J´ai bien l´impression que vous en savez pas trop de quoi vous parlez... ( Même si on met de côté l´ignare qui dit que DarkBasic et C++ c´est kifkif.)
Le C# n´a de C que le nom. Il est complètement aberrant de le comparer à C++. C# ne n´est pas un candidat au remplacement de C++. C#, c´est du Visual Basic. C# c´est un peu du marketing: c´est plus classe de programmer en VB qu´en C(#) ; -). Les deux langages ont le même code intermédiaire, c´est les mêmes. C´est juste l´enveloppe qui change.
C# un langage d´avenir ? Très probablement oui. Il permet aux entreprise de développer des applications vite et bien, tout comme le fait VB.Net.
Ca fait bien longtemps que les entreprises n´utilisent plus C++ pour leurs applications. C++ reste utilisé mais pour des cas spécifiques: jeux, bibliothèques, etc.
Quant au prix exhorbitant de VS.Net, il faut bien comprendre que la cible du produit n´est pas l´étudiant qui programme dans sa chambre ( lui de toutes façon le krakera) mais, encore et toujours, l´entreprise.
C# ne correspond donc peut-être pas aux attentes et à la philisophie du programmeur amateur éclairé GNUiste convaincu ( pour lui, il y a C, C++, Python, Ruby, PHP, Java [quoique...], etc) mais les entreprises l´adore. ( Pour être enbaucher en tant que programmeur, je vous déconseille de dire que vous êtes anti-.Net.)