java中,double不能调用方法,是一个基元数据类型,不是一个对象, Double则是其封装类,可以调用方法。
C# 所有 基元数据类型都都会自动转换成对象类, 基元数据类型 都可以视同为 Double 类的对象。
Reference:http://msdn.microsoft.com/zh-cn/library/ms228360(v=vs.80).aspx
核心类库为 Java 中的每个基元数据类型提供了一个包装类,此包装类将基元数据类型表示为 Java 对象。例如,Int32 类包装int 数据类型,Double 类包装double 数据类型。
另一方面,C# 中的所有基元数据类型都是 System 命名空间中的对象。对于每个数据类型,提供了一个简称(或别名)。例如,int 是 System.Int32 的简称,而 double 是 System.Double 的简写。
下表提供了 C# 数据类型列表及其别名。如表所示,前八个数据类型对应于 Java 中可用的基元类型。但请注意,Java 的 boolean 在 C# 中称为bool。
简称 | .NET 类 | 类型 | 宽度 | 范围(位) |
---|---|---|---|---|
byte | 无符号整数 | 8 | 0 到 255 | |
sbyte | 有符号整数 | 8 | -128 到 127 | |
int | Int32 | 有符号整数 | 32 | -2,147,483,648 到 2,147,483,647 |
uint | 无符号整数 | 32 | 0 到 4294967295 | |
short | 有符号整数 | 16 | -32,768 到 32,767 | |
ushort | 无符号整数 | 16 | 0 到 65535 | |
long | 有符号整数 | 64 | -922337203685477508 到 922337203685477507 | |
ulong | 无符号整数 | 64 | 0 到 18446744073709551615 | |
float | 单精度浮点型 | 32 | -3.402823e38 至 3.402823e38 | |
double | Double | 双精度浮点型 | 64 | -1.79769313486232e308 至 1.79769313486232e308 |
char | 单 Unicode 字符 | 16 | 文本中使用的 Unicode 符号 | |
bool | 逻辑布尔值类型 | 8 | True 或 False | |
object | 所有其他类型的基类型 | |||
string | 字符序列 | |||
decimal | 精确小数类型或整型,可以表示带有 29 个有效位的十进制数 | 128 | ±1.0 × 10e−28 至 ±7.9 × 10e28 |
因为 C# 将所有基元数据类型当作对象表示,所以可以在基元数据类型上调用对象方法。例如:
static void Main() { int i = 10; object o = i; System.Console.WriteLine(o.ToString()); }