From an embedded background, using Int32 (instead of int) means that someone wrote the code specifically with the intent that the integer value be represented with 32 bits so care must be taken in future code that may expand or contract the size.
So, in C#, if I were using an integer where I didn't have a particular reason to specify a bit size, I'd use int. Future programmers could decide they want an int64 without breaking things (decreasing bit size should always be checked).
As for object/Object and String/string, some guidelines I've seen advocate using string or object for a particular object and String/Object when you are referring to the class.
string cat = "meow";
boolean gotCat = String.IsNullOrEmpty(cat);