问题描述 投票:25回答:3
我是C#新手,想了解值的工作原理。如果我看一个普通的整数值,它有3个重要的部分:类型、名称和值。

但是当我看到一个float值的时候,它让我有点困惑,因为它的后缀是

int testInt = 3;
 |    |       |
Type Name   Value

.F现在有两种类型在里面,而没有了。

float testFloat = 3.0F;
  |      |        |  |
 Type   Name  Value Type

后缀的值将是一个双数。但是为什么会发生这种情况,而我可以在声明双变量时使用F

double testDouble = 3.0D;

作为第一个词应该足够了,不是吗?后缀M的十进制值也是如此。double当涉及到其他后缀的时候,我就开始困惑了。

decimal testDecimal = 3.0M;

我用的是

ulong bigOne = 2985825802805280508UL;

在之前的测试中,知道 ulong 是 "unsigned "的意思,让值比正常的高一倍。然后你又会得到U作为后缀,而L则是google所说的literal的意思。按照我的理解,"literals "是包含数字的值类型。但我不明白的是,为什么这个ulong即使没有后缀也能用?u然后我尝试了一些不同的方法来理解后缀的重要性

ulong bigOne = 2985825802805280508;

这样做不行,因为对于字节(254)来说,这个值太高了,而后缀并不能将其转换为长变量。

byte testLong = 12312UL;

为什么声明的第一个字(type)还不够?第一个字应该足以告诉类型。最好的做法是总是给值一个后缀吗?

c# declaration literals variable-declaration
3个回答
© www.soinside.com 2019 - 2024. All rights reserved.