诺言

导航

2、基本数据类型、常量及变量

一、基础知识:

  1. 常用的数据类型:int,short,char等,注意:可空数据类型

a)         整数类型

1) 有符号整数:sbyte,short,int,long

l sbyte 占有1个字节(8个二进制位),取值范围:-128 ~127

l short 占有2个字节(16个二进制位),取值范围:-32768 ~32767

l int占有4个字节(32个二进制位),取值范围:-2147483648 ~2147483647 如:int age = 13;

l long占有8个字节(64个二进制位),取值范围:9,223,372,036,854,775,808~9,223,372,036,854,775,807

例:long num = 31413L

2) 无符号整数:byte,ushort,uint,ulong

l byte占有1个字节(8个二进制位),取值范围:0 ~255

l ushort占有2个字节(16个二进制位),取值范围:0~65535

l uint占有4个字节(32个二进制位),取值范围:0~4294967295

l ulong占有8个字节(64个二进制位),取值范围:0~18,446,744,073,709,551,615如:ulong num = 3414324UL

b)         浮点数(有小数点)

1) 单精度:float,有效位:小数点后的7位。如 float price = 3.0987392F

2) 双精度:double有效位:小数点后的15位。

3) 如 double price = 3.0987392222D

4) decimal 有效位:小数点后的28位。如 decimal price = 3.0987392222M

备注:decimal对应着数据库的money数据类型。

5) 科学计数法表示数值:double  d=2.5e-6 ;表示d=2.5*                         。

c)         布尔数据类型:bool

只有true和false

d)         字符类型

1) 单个字符(单引号):char占有2个字节(16个二进制位) 如:char c =  ‘a’;

2) 字符串(双引号):string 如:string name = “张三”;

注:如果一个字符串时double的小数,不能直接强制转化为int类型,需要先转为double类型在转化int类型。例:

      string a=”3.8”;

int b=(int)Convert.ToDouble(a);

            字符串留用问题:

                因为字符串是不可变的对象,如果多个字符串便令引用多个内容相同的字符串,这样就会浪费资源;如果在托管堆只保留一个字符串对象,这样会更加有效的利用内存。字符串留用的原理就是这样的,所以相同的字符串只有一个字符串实例,如string P_str=”abc”和string p_str2=”abc” 两个字符串变量引用的是一个字符串对象。

e)         对象数据类型:是所有数据类型最终的基类

只有object 如:object obj = “123”;

f)          可空数据类型:? 如:int? age = null;

备注:把大的数据类型的变量赋值给小的数据类型变量,须强制转换。如下:

  int b = 10;

  byte c = (byte)b;// 强制转换

注:整数在计算机中默认是int类型,小数默认是double类型。如果和小的数据类型做运算时也需要强转:

例: byte b=4; byte b1=3; byte b2=7;

 b= b1+3; //出现错误提示:无法将类型int因式转换为‘’byte“,存在显示转换。

纠正:b=(byte)(b1+3);

另外,如果两个byte类型的数据做运算时也需要强转。

例:b=b1+b2; //无法将int因式转换为”byte“,存在一个显示转换,两个byte类型的变量相加是,自动转化为int ,防止超出范围。

  1. 变量的定义:根据定义的位置不同:

a)         字段:定义在类的里面,方法的外边的变量

b)         局部变量:定义在方法的里边的变量

Class Program {

//字段

Static Void Main()

{//局部变量}

c)         变量的命名规则:第一个位置必须是字母或下划线或@,但只能包括字母,数字,下划线。

d)         格式:数据类型 变量名字(注意:如果是字段的话,需要前边加上[访问修饰符]:[访问修饰符] 数据类型 变量名字)

  1. 5个访问修饰符:private,protected,internal,protected internal,public。

a)         私有的(private):修饰的变量只能在当前类中访问,而其他类中不能访问。

b)         受保护的(protected):修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问。

c)         internal:修饰的变量只能在当前程序集(项目)中所有类访问。

d)         protected internal:修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问,在当前程序集(项目)中所有类访问。

e)         公共的(public):修饰的变量在任何类中都可以被访问。

  1. 常量,只读字段。

常量:在运行过程中,不能修改常量所保存的值。关键字:const,定义的时候必须初始化(给变量赋值)定义格式:字段常量和局部常量。定义常量用public

字段常量:[访问修饰符] const 数据类型 常量的名字=初始值 如:public const string sex = “男”;

局部常量:const 数据类型 常量的名字=初始值。如:const string sex = “男”;

注意:Const 不能与Static同时使用,因为Construction默认是静态的。

只读字段:在运行过程中,不能修改常量所保存的值,但唯一可以修改该变量的值是在类的构造函数中。关键字:readonly

一般情况下只有只读字段如:private readonly string connStr = “data source=.”

        Const与readonly区别:1. const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。
3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。
4.const 对于引用类型的常数,可能的值只能是 string 和 null。readonly可以是任何类型
总结:const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的~~

posted on 2015-12-29 14:56  SRTC  阅读(496)  评论(0编辑  收藏  举报