值类型
数据类型,字符类型,布尔类型,日期类型
结构类型(struct),枚举类型(enum)
引用类型
字符串(string),数组,类,委托类型
说明:
(1)值类型数据-通常在栈(stack)中分配,变量中存放的是实际数据值。
(2)引用类型的实际数据被分配在堆(managed heap)中,而引用变量被分配在栈中;引用类型变量存放的是堆中实例数据的存储地址(即引用)。
C#数据类型
枚举类型是具有命名常量的独特的类型。
枚举的声明如下:
访问修饰符enum枚举名[:基础类型]
{
枚举成员
}
其中:基础类型为8种整数类型之一,默认为int。每个枚举成员为一个命名常数,具有一个整数值。第一个枚举成员默认值为零,以后的成员值是将前一个枚举成员的值加1 得到。
枚举例子:
public enum TimeofDay
{
Morning=1 ,
Afternoon ,
Evening //结束没有逗号,
}
Morning的值为1,使用-TimeofDay. Morning
Afternoon的值为2,使用-TimeofDay. Afternoon
Evening的值为3,使用-TimeofDay. Evening
C#的数据类型-结构
C#中的结构类型与类相似,可以定义包含数据成员和方法成员的结构。但与类不同的是,结构是一种值类型,并不需要堆的分配。
•
在结构的声明中,不能对实例字段变量初始化。(const,static字段除外)。
•
结构中可以声明带参数的构造函数(为结构中数据成员初始化),通过new创建结构的实例。
01:struct A
02:{
03: public int x; //不能直接对其进行赋值
04: public int y;
05: public static string str = null; //静态变量可以初始化
06: public A(int x,inty) //带参数的构造函数
07: {
08: this.x= x;
09: this.y= y;
10: Console.WriteLine("x={0},y={1},str={2}", x, y,str);
11: }
12:}
当方法中的参数名与类中字段名同名时如:
03与06行,这时方法中this.x将引用实例中的字段名。
常量
符号常量-使用const修饰符进行声明。
符号常量必须在声明时初始化。
例如:
public constintmonths=12;
声明多个相同类型的常量,例如:
constintmonths = 12, weeks = 52, days = 365;
字面常量:
•
int型常数(不带小数)如:25
•
double型常数如:3.14 , 314e-2
隐式类型-var
C# 的局部变量可以使用隐式类型var声明。格式为:
var 变量名=初值表达式;
变量的实际类型由初值表达式推断。
如:vari = 10; // 隐式声明变量,i可推断为int
var s=“abcd”; //隐式声明变量,s推断为string
注意:
var声明的变量必须是局部变量。
必须在声明时初始化
例:输出A数组各元素值
for( var i=0;i<6;i++)
Console.Write(A[i] + " ");