【原创】C#零基础学习笔记001-变量与常量

其他路径:

CSDN: https://blog.csdn.net/wodehao0808

微信公众号:程序喵星人

 

更多资源和视频教程,QQ:1902686547

 

0. 开发环境

0.1 Visual Studio2017

- 新建项目:选择 Visual C#,会后选择:控制台应用程序,修改名称、项目位置,点击确定;

- 调试运行:ctr键 + F5键;

1. 变量和常量

1.1 数据类型

C#有15个预定义类型:

      13个值类型;

2个引用类型(string 和 object)

  自定义类型中:

    值类型:struct(结构)、enum(枚举)

    引用类型:Class(类)

1.1.1 值类型

bool:逻辑值(真或假),取值:true,false;

  sbyte:8位有符号整数类型,取值:-128~127;

  byte:8位无符号整数类型,取值:0~255;

  short:16位有符号整数类型,取值:-32768~32767;

  ushort:16位无符号整数类型,取值:0~65535;

  int:32位有符号整数类型,取值:-2147483648~2147483647;

  uint:32位无符号整数类型,取值:0~4294967295;

long:64位有符号整数类型,取值:-9223372036854775808~9223372036854775807;

  ulong:64位无符号整数类型,取值:0~18446744073709551615;

  char:16位字符类型,取值:所有的Unicode编码字符;

  float:32位单精度浮点类型(有小数点),取值:大约7个有效十进制数位;

  double:64位双精度浮点类型(有小数点),取值:大约15~16个有效十进制数位;

decimal:128位高精度十进制数类型,大约28~29个有效十进制数位;

 

布尔(bool):值只能是:true,或者false;

  字符(char):

    char类型的字面量用单引号括起来,例如 char achar = 'a';

    char还可以用4位十六进制的Unicode值,例如 char achar = '\u0041';(等同于上面的 char achar = 'a')

1.1.2 引用类型

引用类型

    object:根类型,C#中所有类型都派生自本类;

    string:表示Unicode字符串;

  

引用类型包括 class(类)、interface(接口)、数组、delegate(委托)、object和 string 。object是所有类型(包括所有的值类型和引用类型)的根类。string类型是一个从object类型直接继承的密封类型(不能再被继承),其实例表示Unicode字符串。

    一个引用类型的变量不存储它们所代表的实际数据,而是存储实际数据的引用。

    引用类型分两步创建:首先在堆栈上创建一个引用变量,然后再堆上创建对象本身A,再把这个内存(A)的句柄(也是内存的首地址)赋给引用变量。

    例如:

      string s1, s2;

      s1 = "C#";

      s2 = s1;

      其中,s1, s2是指向字符串"C#"的引用变量,s1, s2的值 是字符串“C#“存放在内存中的 地址,而不是值 ”C#“,是存储的一个 地址值。

    1.Object类型

      object类型就是最终的父类型:

      可以使用object引用绑定任何子类型的对象;

    2.字符串类型

      string 类型表示零或更多Unicode字符组成的序列。string 是 .NET Framework 中String 的别名。

1.2 变量

变量:随着程序的运行而改变其表示的值。

  申明变量就是在内存中指定一个存储目标数据的区域。

1.2.0 变量的命名:

  标识符必须以 字母或者_(下滑线) 开头,后面跟字母、数字和下划线的组合。但C#是大小写敏感的语言,name、Name分别代表不同的标识符。另外,变量名不能与C#中的关键字相同,除非标识符是以@作为前缀的。

  例如:

    int x; // 合法

    float y1 = 0.0, y2 = 1.0, y3; // 合法,变量申明的同时可以设置初始数值

    string char; // 不合法,因为 char 是关键字

    string @char; // 合法

1.2.1 变量的声明

变量用于存储特定数据类型的值。

  语法:

      访问修饰符 数据类型 变量名

 

1.2.2 Example: 变量的声明

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

// 变量的声明

 

namespace Lesson_4_1

{

    class Program

    {

        static void Main(string[] args)

        {

            // 变量定义的格式:数据类型 变量名 = 赋值;

            int intNum = 12;

            float fltScore = 89.5f;

        }

    }

}

 

1.2.3 选择合适的变量的数据类型

  案例说明:

    a. 定义一本书的售价为20.12元;

    b. 一辆小汽车的乘坐人数为 5 人;

    c. 输出信息为 “大家来学C#”;

    d. 表示灯泡的开和关的状态;

1.2.4 变量名的命名规范:

  1.为变量命名时要遵循 C# 语言的命名规范;

  2.变量名只能由 字母、数字和下划线组成,而不能包含空格、标点符号、运算符等其他如@等符号;

  3.变量名不能与C#中的关键字名称相同;

 

  思考一下4个变量名中,合法的变量名是:

    1.&adw

    2.Good byte

    3._list

    4.jx@shi.com

 

    答案:3

1.2.5 变量命名规则

  1.2.5.1 匈牙利命名规则

    在变量和函数名中加入前缀以增进人人们对程序的理解。例如所有的字符变量均以ch为前缀。如命名性别的变量:char chSex = '男'。

  1.2.5.2 Pascal命名规则

    将标识符的首字母和后面连接的每个单词的首字母都大写。如命名一个学生的年龄:int StudentAge = 20;

  1.2.5.3 驼峰命名规则

    是指混合使用大小写字母来改成变量和函数的名字。第一个单词以小写字母开始;第二个单词的首字母或每一个单词的首字母都采用大写字母,如命名一个学生的姓名,

1.2.6 变量命名建议

  1.变量名最好以小写字母开头;

  2.变量名应具有描述性质;

  3.在包含多个单词的变量名中,从第二个单词开始,每个单词都采用首字母大写的形式。

  例如:

    string strStudentName = "Li";        

// str表示,string;之后的每个单词首字母大写 Studeng、Name;

    // 含义:string类型的学生名字的变量名  

 

1.2.7 Example: 变量的数据类型及命名规范

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

// 变量的数据类型及命名规范

 

namespace Lesson_5_1

{

    class Program

    {

        static void Main(string[] args)

        {

            // 定义一本书的售价为20.12元

            float fltPrice = 20.12f;

            // 一辆小汽车的乘坐人数为 5 人

            int intMaxCount = 5;

            // 输出信息为 “大家来学C#”

            string strInfo = "大家来学C#";  // string 是引用类型

            // 表示灯泡的开和关的状态

            bool blLightState = true;  // true:灯泡是开启状态

        }

    }

}

1.3 数据类型转换

1.3.1 装箱

  装箱:将值类型包装成引用类型的处理过程。

  例如:将 int 类型的 123 转换成 object 类型。

  注意:装箱 可以 隐式转换, 拆箱 必须 显示的强制转换。

    int i = 10;

    object obj = i; // 装箱,隐式转换了

    int j = int(obj); // 拆箱,显示的强制转换

 

  1、首先从托管堆中为新生成的引用对象分配内存。

  2、然后将值类型的数据拷贝到刚刚分配的内存中。

  3、返回托管堆中新分配对象的地址。

  可以看出,进行一次装箱要进行 分配内存 和 拷贝数据 这两项比较影响性能的操作。

1.3.2 拆箱

  将引用类型,转换为值类型,需要进行拆箱操作(boxing);

 

 

1.3.3 Example: 数据类型的装箱

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

// 数据类型的装箱

 

namespace Lesson_6_1

{

    class Program

    {

        static void Main(string[] args)

        {

            int intNum = 12;  // 值类型,它是在栈中存储

            // 类型转换:把值类型转换成引用类型

            // 装箱操作:把 值类型 转换成 引用类型,可以采取隐式转换

            object objName = (object)intNum;

 

            // 类型转换:引用类型转换成值类型

            // 拆箱操作:把 引用类型 转化成值类型,必须 显示转换

            object objA = 15;

            int ingGetObjA = (int)objA;

            int intGetObjA1 = Convert.ToInt32( objA );  // 强制类型的转换

 

            object objB = 12.3;

            float fltB = (float)objB;

            float fltB1 = Convert.ToSingle( objB );  // 把引用类型转化成单精度的浮点数据类

 

            object objC = 145.6;

            double dblC = (double)objC;

            double dblC1 = Convert.ToDouble( objC );  // 把引用类型转化成双精度的数据类型

        }

    }

}

1.4 常量

常量用于在整个过程中将数据保持同一个值,通常可以分为 字面常量 和 符号常量。

    1.对于一个整数值,默认的类型就是能够保存它的最小整数类型,其类型可以分为 itn、uint、long 或 ulong。如果默认类型不是想要的类型,可以在常量后面加后缀(U 或 L)来明确指定其类型。

      在常量后面加 L 或 l(不区分大小写)表示唱整型。例如:

        32 // 这是一个 int 类型

        32L // 这时一个 long 类型

      在常量后面加 U 或 u(不区分大小写)表示无符号整数。例如:

        128U // 这是一个 uint 类型

        128UL // 这是一个 ulong 类型

      整型常量既可以采用十进制也可以采用十六进制,默认为十进制,在数值前面加0x(或0X)则表示十六进制,十六进制基数用0~9、A~F(或a~f),例如:

        0x20 // 十六进制数20,相当于十进制数32

 

    2.一般带小数点的数或用科学计数法表示的数都被认为是浮点数,它的数据类型默认为 double 类型,但也可以加后缀符表明三种不同的浮点格式数。

      在数字后面加F(f)表示 float 类型。

      在数字后面加D(d)表示 double 类型。

      在数字后面加M(m)表示是 decimal 类型。

    3.字符常量

      字符常量,简单地说,就是用单引号括起来的单个字符,如‘A’,它占16位,以无符号整型数的形式存储这个字符所对应的Unicode代码。这对于大多数图形字符是可行的,但是对一些非图形的控制字符(如回车符)则行不通,所以字符常量的表达有若干种形式。

      单引号括起的一个字符,如‘A’。

      十六进制的换码系列,以“\x”或“\X”开始。

      Unicode码表示形式,以“\U”或“\u”开始。

      显示转换整数字符代码,如 (char)66.

      字符转义系列,如下所示:

        \' 单引号

        \b 退格符

        \" 双引号

        \f 走纸换页符

        \\ 反斜线字符

        \n 换行符

 

1.4.1 Example: 常量的使用

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

// 常量的使用

 

namespace Lesson_7_1

{

    class Program

    {

        static void Main(string[] args)

        {

            /*

            // example_1

            float fltA = 16.8F;  // 在数值后面加上一个符号明确它的数据类型

            double dblA = 16.8;

            int intA = 0x10;

            long longA = 10L;

            uint uintA = 10u;

            Console.WriteLine( intA );  // 向屏幕输出数据,而这个数据就是括号里的数据

            */

 

            /*

            // example_2:转义

            char charA = '\'';

            Console.WriteLine( charA );

            string strInfo = "第一行,\n第二行";

            Console.WriteLine( strInfo );

            string strBookName = "这是一本\"C#编程的书籍\"";

            Console.WriteLine( strBookName );

            */

 

            // example_3: const

            // const关键字表示的是常量,也就是常量的值是无法改变的

            const double dblPi = 3.14;

            const int intConstA = 20;

            // intConstA = 30;

        }

    }

}

posted @ 2021-03-29 20:45  星月相随  阅读(326)  评论(0)    收藏  举报