Pourquoi ou pourquoi ne pas utiliser 'UL' pour spécifier non signé longtemps?

ulong foo = 0;
ulong bar = 0UL;//this seems redundant and unnecessary. but I see it a lot.

Je le vois aussi dans le référencement le premier élément de tableaux d'une bonne quantité

blah = arr[0UL];//this seems silly since I don't expect the compiler to magically
                //turn '0' into a signed value

Quelqu'un peut-il donner un aperçu de pourquoi j'ai besoin de " UL " tout au long de spécifier plus précisément que c'est un unsigned long?

source d'informationauteur BuckFilledPlatypus