You can use C# or VB.NET, however the .NET Framework doesn't include easy to
use classes to write things such as shell extensions. You'll find yourself
doing a lot of PInvoke and dealing with memory pointers.
If you still want to use .NET, then I guess C# would be a better choice
because the similiarities with C/C++