Hi,
uInt. You can safely use a regular Int, uInt only means it's a positive integer, and saves memory on sensitive and carefully crafted code, in our case, you'll never ever see the difference in 99.9999% of projects
Simply implement in your code some logic that prevents your int to be negative, which really is about a convention in your code that you would maybe only add to that value, hence never get a chance to become negative, OR if in doubt, implement a logic to do a "max" on the value against 0, so that everytime it's foudn negative, it would be brought back to 0.
Long: that's a bit more tricky, but the margin is very big here, the only difference between an int and a long are its min and max values:
http://stackoverflow.com/questions/1918436/difference-between-long-and-int-in-c so for any value inbetween -2,147,483,647 and 2,147,483,647 you are safe! which is pretty good if you want to count money in a game
or any other usual values.
Bye,
Jean