Я новичок в С# и хочу понять, как работают ценности. Если я посмотрю на нормальное целочисленное значение, в нем есть 3 важные части: тип, имя и значение.
int testInt = 3;
| | |
Type Name Value
Но когда я вижу значение float, это меня немного путает из-за суффикса F
.
float testFloat = 3.0F;
| | | |
Type Name Value Type
Теперь в нем есть два типа, и без суффикса F
значение будет двойным. Но почему это происходит, когда я могу объявить двойную переменную с помощью
double testDouble = 3.0D;
double
в качестве первого слова должно быть достаточно, не так ли? То же самое относится к десятичному значению с суффиксом M:
decimal testDecimal = 3.0M;
Тогда это начинает меня смущать, когда дело доходит до других суффиксов:
ulong bigOne = 2985825802805280508UL;
Я использовал ulong
в тесте раньше и знаю, что u
предназначен для "без знака" и позволяет значение в два раза выше обычного. Затем вы получаете U снова как суффикс, а L - буквально, как сказал google. Насколько я понимаю, "литералы" - это типы значений, которые содержат числа. Но я не понимаю, почему этот улунг работает даже без суффикса?
ulong bigOne = 2985825802805280508;
Затем я попробовал что-то другое, чтобы понять важность суффикса
byte testLong = 12312UL;
Это не сработало, потому что значение слишком велико для байта (254), и суффикс не преобразовывает его в длинную переменную.
Почему не первое слово (тип) недостаточно для объявления? Первое слово должно быть достаточно, чтобы указать тип. Лучше ли всегда давать значения суффикс?