Почему или почему я не должен использовать 'UL', чтобы указать unsigned long?

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

Я также вижу это в хорошей ссылке на первый элемент массива.

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

Может ли кто-нибудь объяснить, зачем мне это нужно?UL» повсюду конкретно указывать, что это длинная без знака?