C# δεν γνωρίζω, VB από την σχολή οπότε You cann't teach an old dog new tricks. Αλλά θα κάνω μία διαφορετική προσέγγιση.
Επειδή ο operator ^ στην VB χρησιμοποείται σαν δύναμη, δεν σημαίνει ότι το ίδιο θα έπρεπε να κάνει και η C# για τον ίδιο operator. Συντακτικά ο κώδικας είναι σωστός όπως τον έχεις γράψει, υποθέτω ότι η μεταβλητή b αθροίζεται στο sum και όχι η a οπότε αυτό είναι τυπογραφικό λάθος. Μου φαίνεται πως κάτι άλλο γίνεται με την ^ στην C#.
Υπάρχει κανείς που να γνωρίζει και τις δύο γλώσσες και να μας πει αν το ^ κάνει το ίδιο πράγμα και στις δύο;