文献编号: 归档时间: 年 月 日
C#基础语法~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:C#
作者:吴锦华
撰写时间:2021/8/28
1.C#基本数据类型
数据类型主要用于指明变量和常量存储值的类型,C# 语言是一种强类型语言,要求每个变量都必须指定数据类型。
1、数据类型分类
C# 语言的数据类型分为值类型和引用类型。
值类型中包括:
1.整型 2.浮点型 3.字符型 4.布尔型 5.枚举型
引用类型包括:
1.类 2.接口 3.数组委托 4.字符串
2、整型类型
整型所谓整型就是存储整数的类型,按照存储值的范围不同,C# 语言将整型分成了 byte 类型、short 类型、int 类型、long 类型等,并分别定义了有符号数和无符号数。
整型类型的分类、占用内存大小以及最大可表示范围如下图所示:
其中sbyte中的s字母是取自 signed 单词中的首字母,代表有符号;
ushort,uint,ulong中的u字母是取自 unsigned 单词中的首字母,代表无符号。
类 型 |
取值范围 |
sbyte |
有符号数,占用1个字节,-27〜27-1 |
byte |
无符号数,占用1个字节,0〜28-1 |
short |
有符号数,占用2个字节,-215〜215-1 |
ushort |
无符号数,占用2个字节,0〜216-1 |
int |
有符号数,占用4个字节,-231〜231-1 |
uint |
无符号数,占用4个字节,0〜232-1 |
long |
有符号数,占用8个字节,-263〜263-1 |
ulong |
无符号数,占用8个字节,0〜264-1 |
3、浮点型
浮点型是指小数类型,浮点型在 C# 语言中共有两种,一种称为单精度浮点型,
一种称为双 精度浮点型。二者表示的精度范围不同。
在 C# 语言中默认的浮点型是 double 类型。如果要使用单精度浮点型,需要在数值后面 加上 f 或 F 来表示,例如 123.45f、123.45F。
类 型 |
取值范围 |
float |
单精度浮点型,占用4个字节,最多保留7位小数 |
double |
双精度浮点型,占用8个字节,最多保留16位小数 |
举例如下: double dValue = 1234.45; float fValue = 1234.45f;
C#中还有一种精度更高的浮点类型:decimal类型,它占16个字节
decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。 要把数字指定为decimal类型,可以在数字的后面加上字符M或(m)
举例如下: decimal d=12.30M;
4、字符型
字符型只能存放一个字符,它固定占用两个字节,能存放一个汉字。 字符型用 char 关键字表示,存放到 char 类型的字符需要使用单引号括起来,例如 'a'、'中' 等。 举例如下: char c = 'A';
注意:字符型只能使用单引号。 双引号代表字符串类型。
5、布尔类型
C# 语言中,布尔类型使用 bool 来声明,它只有两个值,即 true 和 false。
当某个值只有两种状态时可以将其声明为布尔类型,例如,是否同意协议、是否购买商品等。
布尔类型的值也被经常用到条件判断的语句中,例如,判断某个值是否为偶数、判断某个日期是否是工作日等。
例如: bool isModify = false; //是否变更。
6、字符串类型
字符串类型能存放多个字符,它是一个引用类型。
在字符串类型中存放的字符数可以认为是没有限制的,因为其使用的内存大小不是固定的而是可变的。
使用 string 关键字来存放字符串类型的数据。字符串类型的数据必须使用双引号括起来,例如 "abc"、"123" 等。
举例如下: string strValue = "我是一个字符串";
7、转义字符
在 C# 语言中还有一些特殊的字符串,代表了不同的特殊作用。由于在声明字符串类型的数据时需要用双引号将其括起来,那么双引号就成了特殊字符,不能直接输出,转义字符的作用就是输出这个有特殊含义的字符。
常用的转义字符如下表所示。
转义字符 |
等价字符 |
\’ |
单引号 |
\” |
双引号 |
\\ \0 |
反斜杠 空 |
\a |
警告(产生蜂鸣音) |
\b |
退格 |
\f |
换页 |
\n |
换行 |
\r |
回车 |
\t |
水平制表符 |
\v |
垂直制表符 |
举例如下:string testValue = "我叫\'张三\',\n我来自海边。";
二、C#中的注释和命名规范
1、注释
注释一般都以下两种作用:
1.说明当前代码的作用以及意义。
2.暂时去掉不用代码,让其不参与编译。
C#中包含三种注释:
1)单行注释
使用两个斜杠代表其后内容是注释部分。
举例如下:
2)多行注释
使用/* */ 代表多行注释,期间的所有内容都是注释部分。
举例如下:
3)文档注释
文档注释一般多用于类和方法的前面,说明该类和方法的作用以及意义。
举例如下:
在方法或者类的前一行打出三个斜杠,VS自动添加文档注释。
Tips:
平时写代码时也要有为代码添加注释的习惯。这样写出来的代码不仅美观,更容易维护。
2、命名规范
命名规则是为了让整个程序代码统一以增强其可读性而设置的。
常用的命名方法有两种:
Pascal 命名法(帕斯卡命名法):每个单词的首字母大写
Camel 命名法(驼峰命名法):第一个单词小写,从第二个单词开始每个单词的首字母大写
1) 变量的命名规则
变量的命名规则遵循 Camel 命名法,并尽量使用能描述变量作用的英文单词。例如存放学生姓名的变量可以定义成 name 或者 studentName 等。另外,变量名字也不建议过长,最好是 1 个单词,最多不超过 3 个单词。
2) 常量的命名规则
为了与变量有所区分,通常将定义常量的单词的所有字母大写。例如定义求圆面积的 n 的值,可以将其定义成一个常量以保证在整个程序中使用的值是统一的,直接定义成 PI 即 可。
3) 类的命名规则
类的命名规则遵循 Pascal 命名法,即每个单词的首字母大写。例如定义一个存放学生信息的类,可以定义成 Student。
4) 接口的命名规则
接口的命名规则也遵循 Pascal 命名法,但通常都是以 I 开头,并将其后面的每个单词的首字母大写。例如定义一个存放值比较操作的接口,可以将其命名为 ICompare。
5) 方法的命名规则
方法的命名遵循 Pascal 命名法,一般采用动词来命名。例如实现添加用户信息操作的方法,可以将其命名为 AddUser。
三、变量和常量
1、变量
变量(Variable)是 C# 编程中不可缺失的内容,使用变量可以更容易地完成程序的编写。
变量可以理解为存放数据的容器,并且在将值存放到变量中时还要为变量指定数据类型。
定义变量的语法如下:
数据类型 变量名;
数据类型 变量名 = 初始值;
注意:
对于未初始化的变量,其内容无法确定,所以无法进行直接输出显示,需要设置值之后再进行输出。
举例如下:
2、常量
常量也是用来存储数据的容器,在定义时都需要指明数据类型。
唯一的特点是:存放的值不允许改变。
常量需要使用关键字const进行修饰。
常量一般全部使用大写。
举例如下:
【实例1】分别求圆的面积和周长,并使用常量存放 π 的值,将 π 的值定义为3.14。
执行上面代码,效果如下图
四、运算符
C#语言包含6种类型的运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符。
1、算数运算符
算术运算符算术运算符是最常用的一类运算符,包括加法、减法、乘法、除法等。
如下表所示:
运算符 |
说 明 |
+ |
对两个操作数做加法运算 |
- |
对两个操作数做减法运算 |
* |
对两个操作数做乘法运算 |
/ |
对两个操作数做除法运算 |
% |
对两个操作数做取余运算 |
这里需要强调的是:
1)当对两个字符串类型的值使用 + 运算符,代表的是两个字符串值的连接,例如 "123"+"456" 的结果为 "23456" 。
2)当使用 / 运算符时也要注意操作数的数据类型,如果两个操作数的数据类型都为整数,那 么结果相当于取整运算,不包括余数;而两个操作数中如果有一
个操作数的数据类型为浮点 数,那么结果则是正常的除法运算。
3)当使用 % 运算符时,如果两个操作都为整数,那么结果相当于取余数。经常使用该运算 符来判断某个数是否能被其他的数整除。
举例如下:
计算一个整数的个位数字和十位数字。
2、关系运算符
关系运算符在条件判断中经常使用的一类运算符,包括大于、小于、不等于、大于等于、小于等于等符号。
关系运算符比较的返回结果是一个bool类型的值。
如下表所示:
运算符 |
说 明 |
== |
表示两边表达式运算的结果相等,注意是两个等号 |
!= |
表示两边表达式运算的结果不相等 |
> |
表示左边表达式的值大于右边表达式的值 |
< |
表示左边表达式的值小于右边表达式的值 |
>= |
表示左边表达式的值大于等于右边表达式的值 |
<= |
表示左边表达式的值小于等于右边表达式的值 |
举例如下:
3、逻辑运算符
逻辑运算符主要包括与、或、非等,它主要用于多个布尔型表达式之间的运算。
如下表所示:
运算符 |
含义 |
说 明 |
&& |
逻辑与 |
如果运算符两边都为 True,则整个表达式为 True,否则为 False;如果左边操 作数为 False,则不对右边表达式进行计算,相当于“且”的含义 |
|| |
逻辑或 |
如果运算符两边有一个或两个为 True,整个表达式为 True,否则为 False; 如果左边为 True,则不对右边表达式进行计算,相当于“或”的含义 |
! |
逻辑非 |
表示和原来的逻辑相反的逻辑 |
4、位运算
位运算,通常是指将数值型的值从十进制转换成二进制后的运算,由于是对二进制数进行运
算,所以使用位运算符对操作数进行运算的速度稍快。
位运算包括与、或、 非、左移、右移等。
如下表所示:
运算符 |
说 明 |
& |
按位与。两个运算数都为 1,则整个表达式为 1,否则为 0;也可以对布尔型的值进行比较,相当 于“与”运算,但不是短路运算 |
| |
按位或。两个运算数都为 0,则整个表达式为 0,否则为 1;也可以对布尔型的值进行比较,相当 于“或”运算,但不是短路运算 |
~ |
按位非。当被运算的值为 1 时,运算结果为 0;当被运算的值为 0 时,运算结果为 1。该操作符不能用于 布尔型。对正整数取反,则在原来的数上加 1,然后取负数;对负整数取反,则在原来的数上加 1,然后 取绝对值 |
^ |
按位异或。只有运算的两位不同结果才为 1,否则为 0 |
<< |
左移。把运算符左边的操作数向左移动运算符右边指定的位数,右边因移动空出的部分 补 0 |
>> |
有符号右移。把运算符左边的操作数向右移动运算符右边指定的位数。如果是正值,左侧因移动空出的部 分补 0;如果是负值,左侧因移动空出的部分补 1 |
>>> |
无符号右移。和 >> 的移动方式一样,只是不管正负,因移动空出的部分都补 0 |
5、赋值运算符
赋值运算符中最常见的是等号,除了等号以外还有很多赋值运算符,它们通常都是与其他运算符连用起到简化操作的作用。
如下表所示:
运算符 |
说 明 |
= |
x=y,等号右边的值给等号左边的变量,即把变量 y 的值赋给变量 x |
+= |
x+=y,等同于 x=x+y |
-= |
x-=y,等同于 x=x-y |
*= |
x*=y,等同于 x=x*y |
/= |
x/=y,等同于 x=x/y |
%= |
x%=y,等同于 x=x%y,表示求 x 除以 y 的余数 |
++ |
x++ 或 ++x,等同于 x=x+1 |
-- |
x-- 或 --x,等同于 x=x-1 5、 |
6.特殊运算符
特殊运算符包含自增运算符,自减运算符和条件运算符。
如下表所示:
运算符 |
说 明 |
++ |
x++ 或 ++x,等同于 x=x+1 |
-- |
x-- 或 --x,等同于 x=x-1 |
?: |
布尔表达式 ? 表达式 1: 表达式 2 |
7、运算符优先级
在表达式中使用多个运算符进行计算时,运算符的运算是有先后顺序的,所以定义了运算符
之间的优先级,来判断哪些操作优先计算。
运算符优先级如下表所示:
优先级由高到低依次往下。
运算符 |
说 明 |
.(点)、()(小括号)、[](中括号) |
从左到右 |
+ (正)、-(负)、++ (自增)、--(自减)、~ (按位非)、!(逻辑非) |
从右到左 |
*(乘)、/ (除)、% (取余) |
从左向右 |
+ (加)、-(减) |
从左向右 |
<<、>>、>>> |
从左向右 |
<、<=、>、>= |
从左向右 |
==、!= |
从左向右 |
& |
从左向右 |
| |
从左向右 |
^ |
从左向右 |
&& |
从左向右 |
|| |
从左向右 |
?: |
从右到左 |
=、+=、-=、*=、/=、%=、&=、|=、^=、~=、<<=、>>=、>>>= |
从右到左 |
结合性是指具有相同优先级的多个运算符同时存在时,系统执行计算时的方向。
举例如下:
五、流程控制语句
1、 判断语句
判断语句中包含if语句、switch...case语句以及三目运算符。
注意:
a.switch中的表达式是一个常量表达式,必须是一个整型或枚举类型,且值不可以相同。
b.使用三目运算符时尽可能的使用括号和空格,使得表达式看起来清晰明了。
2、 循环语句
3.循环控制语句
goto语句的优缺点:
1.最方便且效率最高
2.使程序层次不清,且不易阅读,难以维护
以上为我的C#基础语法内容,希望对每一位读者都有所帮助,同时我也期待有读者发表建议对我的内容补充和修改。后续能总结出比较完善的文献论文。