what are the advantages of c# compared to c++ and java