C#中的数据类型
学过了某门C系语言(C/C++/JAVA 等,具体的相同的一些概念就不一一介绍)
-------
简单的数据类型(Simple types)
它包括了整数类型,布尔类型,字符类型,实数类型
整数类型:
短字节型 (sbyte) 有符号的8位整数 -128~127
字节型 (byte) 无符号的8位整数 0~255
短整型 (short) 有符号的16位整数 -32768~32767
无符号短整型 (ushort) 无符号的16位整数 0~65535
整型 (int) 有符号的32位整数 ...
无符号整型 (uint) ... ...
长整型 (long) ... ...
无符号长整型 (ulong) ... ...
布尔类型:
很好理解,就只有true 或者 false 除了这两个值,转换成其他的值都是错的,例如:bool a=1;(错误)
实数类型:
浮点类型的
十进制类型: 主要方便我们在金融和货币方面的计算,是一种高精度的,128位的数据类型,
范围比double小,但更精确(28~29位)!它不是以小数点来表示的,而是以位数!!
定义(例如):decimal d_value=10.0m(不能省略m,否则被当作double)
字符类型:
注意:在C,C++字符是作为整数的一部分,可以进行赋值和运算!但在C#中这样是不可以的!
-------
结构类型:
struct phoneBook
{
public string name;
public string phone;
public string address;
}
phoneBool p1;
枚举类型:
枚举类型所能取的值只能是long ,int ,short,byte 等整型
----
引用类型:
C#中的另一大数据类型,“引用”这个词在这里的含义是,该类型的变量不直接存储所包含的值!
而是指向它所要存储的值。也就是说,引用类型存储实际数据的引用值的地址。
C#中的引用类型有4种:
类
代表
数组
接口
--------
装箱(boxing)和拆箱(unboxing)
这个机制使得在c#类型系统中,任何值类型、引用类型和object(对象)类型之间进行转换,我们
称这种转化为绑定连接。简单说,有了装箱和拆箱概念,对任何类型的值来说最终我们都可以看作
是object类型。
装箱转换:
是将一个值类型隐式地转换成一个object类型,或者把这个值类型转换成一个被该值类型
应用的接口类型(interface-type).把一个值类型的值装箱,也就是创建一个object实例
并将这个值赋值给这个object。比如:
int i=10;
object obj=i;//object obj=object(i);
例子:
using System;
class test
{
public static void Main()
{
int i=10;
object obj=i;
if(obj is int)
Console.WriteLine("The Value of i is boxing");
i=20;
Console.WriteLine("int:i={0}",i);
Console.WriteLine("object:obj={0}",obj);
Console.ReadLine();
}
}
结果:被装箱的类型的值是作为一个拷贝赋给对象的!
----
拆箱转换:
是将一个对象类型显式地转换成一个值类型,或者将一个接口类型显式地转换成一个
执行该接口的值类型。
拆箱过程分2步:
首先,检查这个对象实例,看它是否为给定的值类型的装箱值。然后,
把这个实例的值拷贝给值类型的变量。
比如:
int i=10;
object obj=i;
int j=(int)obj;
注意:装箱和拆箱转换必须遵循类型兼容原则。
------------------------------------------
变量和常量
-----
C#中 变量命名与C语言不同了,它只能以字母开头!有些例外的就是以@开头的,例如:char @ch;//合法
在c#中,变量: 静态变量、非静态变量、数组元素、值参数、引用参数、输出参数、局部变量
学过了某门C系语言(C/C++/JAVA 等,具体的相同的一些概念就不一一介绍)
-------
简单的数据类型(Simple types)
它包括了整数类型,布尔类型,字符类型,实数类型
整数类型:
短字节型 (sbyte) 有符号的8位整数 -128~127
字节型 (byte) 无符号的8位整数 0~255
短整型 (short) 有符号的16位整数 -32768~32767
无符号短整型 (ushort) 无符号的16位整数 0~65535
整型 (int) 有符号的32位整数 ...
无符号整型 (uint) ... ...
长整型 (long) ... ...
无符号长整型 (ulong) ... ...
布尔类型:
很好理解,就只有true 或者 false 除了这两个值,转换成其他的值都是错的,例如:bool a=1;(错误)
实数类型:
浮点类型的
十进制类型: 主要方便我们在金融和货币方面的计算,是一种高精度的,128位的数据类型,
范围比double小,但更精确(28~29位)!它不是以小数点来表示的,而是以位数!!
定义(例如):decimal d_value=10.0m(不能省略m,否则被当作double)
字符类型:
注意:在C,C++字符是作为整数的一部分,可以进行赋值和运算!但在C#中这样是不可以的!
-------
结构类型:
struct phoneBook
{
public string name;
public string phone;
public string address;
}
phoneBool p1;
枚举类型:
枚举类型所能取的值只能是long ,int ,short,byte 等整型
----
引用类型:
C#中的另一大数据类型,“引用”这个词在这里的含义是,该类型的变量不直接存储所包含的值!
而是指向它所要存储的值。也就是说,引用类型存储实际数据的引用值的地址。
C#中的引用类型有4种:
类
代表
数组
接口
--------
装箱(boxing)和拆箱(unboxing)
这个机制使得在c#类型系统中,任何值类型、引用类型和object(对象)类型之间进行转换,我们
称这种转化为绑定连接。简单说,有了装箱和拆箱概念,对任何类型的值来说最终我们都可以看作
是object类型。
装箱转换:
是将一个值类型隐式地转换成一个object类型,或者把这个值类型转换成一个被该值类型
应用的接口类型(interface-type).把一个值类型的值装箱,也就是创建一个object实例
并将这个值赋值给这个object。比如:
int i=10;
object obj=i;//object obj=object(i);
例子:
using System;
class test
{
public static void Main()
{
int i=10;
object obj=i;
if(obj is int)
Console.WriteLine("The Value of i is boxing");
i=20;
Console.WriteLine("int:i={0}",i);
Console.WriteLine("object:obj={0}",obj);
Console.ReadLine();
}
}
结果:被装箱的类型的值是作为一个拷贝赋给对象的!
----
拆箱转换:
是将一个对象类型显式地转换成一个值类型,或者将一个接口类型显式地转换成一个
执行该接口的值类型。
拆箱过程分2步:
首先,检查这个对象实例,看它是否为给定的值类型的装箱值。然后,
把这个实例的值拷贝给值类型的变量。
比如:
int i=10;
object obj=i;
int j=(int)obj;
注意:装箱和拆箱转换必须遵循类型兼容原则。
------------------------------------------
变量和常量
-----
C#中 变量命名与C语言不同了,它只能以字母开头!有些例外的就是以@开头的,例如:char @ch;//合法
在c#中,变量: 静态变量、非静态变量、数组元素、值参数、引用参数、输出参数、局部变量
浙公网安备 33010602011771号