Good for you, teaching something like C#, is it? Well C-like, as you said. VB is pretty shocking. Especially in this day and age.
I'm a huge D lover these days. A lot easier and cleaner than C or C++, very high powered. Garbage collected, but you can turn that off if you really read up on how. Compiled to native code by two superb quality compilers GCC for D (called GDC) and LLVM for D (called LDC, like CLANG) plus the reference compiler from Digital Mars, called DMD, the latter always the latest bleeding edge latest language spec version but not a serious quality code generator, fine for testing or for non speed critical stuff.
Like the C versions, GDC and LDC compilers feature superb intelligent integration with inline assembler, many processors. The DMD compiler has a much inferior and incompatible inline assembler system which I would stay a million miles away from, for too many reasons to list. If you wanted to use assembler then you would be using one of the high performance compilers anyway, so it doesn't make any sense.
Someone has done a Visual Studio component/add-in or whatever that gives the IDE support for D.
You can mix it with C, call C from it, call some C++ from it, call D from C too, in fact there is a compiler switch to help you with the latter because it then warns about features that won't work in an entirely C world without some of the core D RTL and perhaps does one or two more things. It's a feature called something like BetterC.
I think it is hugely cleaned up, all the madness of C++ syntax is gone, the worst things about C are sorted out. There is no preprocessor and no header files, instead there are proper modules and everywhere you wanted to use header files, preprocessor directives and so forth, there are specialised clean tailored features to handle each use case properly. Nothing has been missed. Because there are no header files there is no repeated pulling in and compiling of vast amounts of header file text again and again so compilations are lightning fast in a way that C or C++ can only dream in vain about.
Templates and generic programming are amazing. CTFE, compile-time function evaluation transforms your programming sometimes, occasionally removing huge pieces of code because when it can whole function calls are entirely done at compile-time whenever they possibly logically can be, without limits just because of syntactic restrictions or lack of intelligence on the part of the compiler. I recently had a readonly table with 64k entries that needed complex calculations for each entry. The whole lot was set up by a long involved initialisation routine, but all of that code vanished because it all got done entirely at compile-time and the end result was simply included as readonly preinitialised data.
Here’s me going on and on. Love-struck. Apologies for being so off-topic!
You might be interested anyway. Could be fun.