2013-06-05 46 views
2

enter image description here为什么Int64.MaxValue很长?

不应该是整数类型吗?

这样一来,一些功能,这是使用INT无法接受这个作为参数,因为它返回一个长,但他们期待一个int

+6

只是因为Int64 == long – Cybermaxs

+3

int64是很长的。 http://stackoverflow.com/questions/5260314/c-sharp-isnt-a-int64-equal-to-a-long – Willem

+3

'long'是'Int64'的同义词。 'int'是'Int32'的同义词。 – yogi

回答

18

在.NET中,常见的内置的类型别名适用于所有原始类型和一些标准类型。每个别名对应于一个实际的.NET类型,并且别名和类型名称可以互换使用。

这里列出了一些C#中的别名。其他.NET语言,可能会使用不同的别名为同一类型(如与VB.NET的情况下)

 
    byte -> System.Byte 
    short -> System.Int16 
    int -> System.Int32 
    long -> System.Int64 
    string -> System.String 
    ... 

正如你所看到的,System.Int64代表64位整数又名一个long

+0

不是C#特有的。 VB.NET有相同的。 –

+0

哦,好吧..它被称为Int64把我扔了 – Akash

+2

@MattWilko不完全是,VB中的别名是不同的。例如你有'Integer',而不是'int'。我已经提到了C#特有的。 –

7

Int64long类型。

Int32int类型。

+0

'long long'是一个没有出现在C#规范中的短语,所以我不确定你的意思。 – AakashM

+0

@aakashm我既不thx,编辑答案。 – Dariusz

1

朗== >>的Int64输出:真

诠释== >>的Int32输出:真

的Int64 == >>的Int32输出:假

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

5

.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 
+1

“在.NET中,原始类型只是它们等价结构的捷径” - 你也许是指“在C#中,某些数据类型关键字完全等价于某些”系统“值类型? – AakashM

相关问题