Hier möchte ich kurz den Unterscheid zwischen int und uint, sowie long und ulong erläutern. In Programmiersprachen gibt es als Daten-Typen int (32bit) bzw. auch long (64bit). C# (ggf. auch weitere Programmiersprachen) kann aber auch Datentypen ohne Vorzeichen (unsigned) z.B. uint und ulong verarbeiten.
Der Unterschied ist, dass die unsigned Daten-Typen in bit-Form zwar genauso lang sind (32bit / 64bit), aber keine Vorzeichen haben, d.h. sie können keine negativen Zahlen aufnehmen.
Der Unterschied der jeweiligen Daten-Typen wird hier nochmal verdeutlicht:
int (32 bit):
int: –2147483648 bis 2147483647
uint: 0 bis 4294967295
long (64 bit):
long: -9223372036854775808 bis 9223372036854775807
ulong: 0 bis 18446744073709551615