C#基础——基本数据类型、常量及变量

举报
AI浩 发表于 2021/12/22 23:38:17 2021/12/22
【摘要】 基础知识: 常用的数据类型:int,short,char等,注意:可空数据类型 整数类型 有符号整数:sbyte,short,int,long sbyte 占有1个字节(8个二进制位),取值范围:-128 ~127short 占有2个字...
  • 基础知识:
  1. 常用的数据类型:int,short,char等,注意:可空数据类型
          1. 整数类型
            1. 有符号整数:sbyte,short,int,long
              1. sbyte 占有1个字节(8个二进制位),取值范围:-128 ~127
              2. short 占有2个字节(16个二进制位),取值范围:-32768 ~32767
              3. int占有4个字节(32个二进制位),取值范围:-2147483648 ~2147483647 如:int age = 13;
              4. long占有8个字节(64个二进制位),取值范围:9,223,372,036,854,775,808~9,223,372,036,854,775,807

例:long num = 31413L

            1. 无符号整数:byte,ushort,uint,ulong
              1. byte占有1个字节(8个二进制位),取值范围:0 ~255
              2. ushort占有2个字节(16个二进制位),取值范围:0~65535
              3. uint占有4个字节(32个二进制位),取值范围:0~4294967295
              4. ulong占有8个字节(64个二进制位),取值范围:0~18,446,744,073,709,551,615如:ulong num = 3414324U;
          1. 浮点数(有小数点)
            1. 单精度:float,有效位:小数点后的7位。如 float price = 3.0987392F
            2. 双精度:double有效位:小数点后的15位。如 double price = 3.0987392222D
            3. decimal 有效位:小数点后的28位。如 decimal price = 3.0987392222M

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

            1. 科学计数法表示数值:double  d=2.5e-6 ;表示d=2.5*10-6uploading.4e448015.gif转存失败重新上传取消
          1. 布尔数据类型:bool,只有true和false。
          2. 字符类型
            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” 两个字符串变量引用的是一个字符串对象。

          1. 对象数据类型:是所有数据类型最终的基类

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

          1. 可空数据类型:? 如: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. 变量的定义:根据定义的位置不同:
          1. 字段:定义在类的里面,方法的外边的变量
          2. 局部变量:定义在方法的里边的变量

Class Program {

//字段

Static Void Main()

{//局部变量}

          1. 变量的命名规则:第一个位置必须是字母或下划线,但只能包括字母,数字,下划线。
          2. 格式:数据类型 变量名字(注意:如果是字段的话,需要前边加上[访问修饰符]:[访问修饰符] 数据类型 变量名字)
  1. 5个访问修饰符:private,protected,internal,protected internal,public。
          1. 私有的(private):修饰的变量只能在当前类中访问,而其他类中不能访问。
          2. 受保护的(protected):修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问。
          3. internal:修饰的变量只能在当前程序集(项目)中所有类访问。
          4. protected internal:修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问,在当前程序集(项目)中所有类访问。
          5. 公共的(public):修饰的变量在任何类中都可以被访问。
  2. 常量,只读字段。

常量:在运行过程中,不能修改常量所保存的值。关键字: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的值是可以在运行的时候才确定值的~~

文章来源: wanghao.blog.csdn.net,作者:AI浩,版权归原作者所有,如需转载,请联系作者。

原文链接:wanghao.blog.csdn.net/article/details/105276921

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。