IMO, C# is worth learning if you don't care that you can only program windows .NET with it. If you already know VB.NET, I see no point in learning it. If you already know C++, you can go for managed C++ if you plan to use it from time to time, or learn C# (only a small step) if you want to use .NET heavily.