По умолчанию компилятор выводит числовой литерал как двойной, так и целочисленный.
- Если буква содержит десятичную точку или экспоненциальный символ, это двойной.
- В противном случае тип литерала - первый тип в этот список, который может соответствовать значению буква: int, uint, long, ulong.
Суффиксы и (или U), и л (или L), редко бывают необходимы, потому что UINT, длинные и ULong типы могут почти всегда быть либо заключений или неявно преобразуется из INT:
long i=5; //implicit lossless conversion from int literal to long
Точно так же суффикс d также избыточен, поскольку все литералы с десятичной точкой считаются двойными.
double x= 4.0d; //(Here, d is redundant)
Диафрагменных (с плавающей точкой) и т (десятичный) суффиксы являются наиболее полезными и всегда должны быть применены при указании поплавка или десятичных литералов. Без суффикса f следующие строки не будут компилироваться, потому что 3.5 будет выведен как тип double, который не имеет никакого неявного преобразования в float.
float f= 3.5f;
Аналогично, следующая строка не будет компилироваться без суффикса m (decimal).
decimal d=-1.25m;
В заключении суффиксы предписывает компилятор считать интегральный литерал (например 123), чтобы быть определенным типа number-, например долго. Аналогичным образом, двойной литерал считается другим типом - например, float, decimal и т. Д.
Чтобы показать, что он неподписан. Некоторые значения лучше представлены как абсолютные, например, расстояния. – Carcigenicate
Одним из возможных вариантов использования «5u» является то, что вам нравится использовать ключевое слово «var». Если вы напишете «var j = 5;», тогда он будет сохранен как int и если вы напишите «var j = 5u;», то он будет сохранен как uint. – discussedtree
@ Карцигенетическое "uint distance = 730480;". Не нужно было использовать суффикс «u» здесь. – discussedtree