-
If you’ve got a string, and you expect it to always be an integer (say, if some web service is handing you an integer in string format), you’d use
Int32.Parse(). -
If you’re collecting input from a user, you’d generally use
Int32.TryParse(), since it allows you more fine-grained control over the situation when the user enters invalid input. -
Convert.ToInt32()takes an object as its argument. (See Chris S’s answer for how it works)Convert.ToInt32()also does not throwArgumentNullExceptionwhen its argument is null the wayInt32.Parse()does. That also means thatConvert.ToInt32()is probably a wee bit slower thanInt32.Parse(), though in practice, unless you’re doing a very large number of iterations in a loop, you’ll never notice it.