C# 为什么Int64.MaxValue是长的?

C# 为什么Int64.MaxValue是长的?,c#,C#,它不应该是整数类型吗 这样,一些使用int的函数无法接受它作为参数,因为它返回一个long,但它们期望intInt64是一个long类型 Int32是一种int类型。在.NET中,所有基本类型和一些标准化类型都有常见的内置的类型别名。每个别名对应一个实际的.NET类型,别名和类型名都可以互换使用 下面列出了C#中的一些别名。其他.NET语言可能对相同类型使用不同的别名(如VB.NET) 字节->系统字节 short->System.Int16 int->System.Int32 long->Sy

它不应该是整数类型吗


这样,一些使用int的函数无法接受它作为参数,因为它返回一个long,但它们期望int

Int64
是一个
long
类型


Int32
是一种
int
类型。

在.NET中,所有基本类型和一些标准化类型都有常见的内置的类型别名。每个别名对应一个实际的.NET类型,别名和类型名都可以互换使用

下面列出了C#中的一些别名。其他.NET语言可能对相同类型使用不同的别名(如VB.NET)

字节->系统字节 short->System.Int16 int->System.Int32 long->System.Int64 string->System.string ... 如您所见,
System.Int64
表示一个64位整数a.k.a
long

Long==Int64>>输出:True

Int==Int32>>输出:真

Int64==Int32>>输出:False


如果长/Int64足够小,则只能将其转换为Int/Int32,但始终可以将Int转换为长。Int64/Long支持大于或小于标准Int的数字。

.NET对某些类型使用类型别名。这意味着类型别名与其相对值类型完全等效。从下面的列表中可以看到,System.Int64的类型别名为“long”。下面是.NET中类型别名的完整列表

//Alias      |  Relative Data Type
byte         |  System.Byte
sbyte        |  System.SByte
short        |  System.Int16
ushort       |  System.UInt16
int          |  System.Int32
uint         |  System.UInt32
long         |  System.Int64
ulong        |  System.UInt64
float        |  System.Single
double       |  System.Double
decimal      |  System.Decimal
string       |  System.String
bool         |  System.Boolean
object       |  System.Object

因为Int64==longint64是一个long
long
Int64
的同义词
int
Int32
的同义词。对C#来说不是特别的。VB.NET也有同样的功能。哦,好的。。它被称为Int64让我很吃惊off@MattWilko不完全是这样,VB中的别名是不同的。例如,您有
Integer
,而不是
int
。我已经提到了C#特定的语言。我的观点是,你的回答推断C#是唯一有别名的语言,但你现在的回答澄清了这一点。@MattWilko,请原谅我延迟回复。是的,你在我的文章的早期版本中是正确的,这就是我编辑它的原因,所以感谢你的关注。我必须承认,我发现从第一次开始写一篇精彩的文章很难,但很高兴有了维基编辑功能。
long
是一个在C#规范中没有出现的短语,所以我不确定你的意思。@aakashm me,thx,编辑了答案。“在.NET中,基本类型只是其等效结构的捷径”-你的意思可能是“在C#中,某些数据类型关键字与某些
System
值类型完全等效”?
//Alias      |  Relative Data Type
byte         |  System.Byte
sbyte        |  System.SByte
short        |  System.Int16
ushort       |  System.UInt16
int          |  System.Int32
uint         |  System.UInt32
long         |  System.Int64
ulong        |  System.UInt64
float        |  System.Single
double       |  System.Double
decimal      |  System.Decimal
string       |  System.String
bool         |  System.Boolean
object       |  System.Object