I have played around with all three, Java, C++, C#.
For business I would surely advise Xamarin, as their prices are quite reasonable.
But if you are just hacking some stuff every now and then, it might not be worth it.
And on that case, there is also the possibility to compile Java to native code in iOS (RoboVM) or use any other language that either has an AOT compiler, or has a compiler available that compiles via C.
It is always a matter how much time vs money, one wants to invest.