//此文为在BiliBili大学学习刘铁猛刘老师的C#课程的笔记,刘老师的课程对于我一个初学者来说,看了之后可谓是茅塞顿开。此文目的是供个人学习和复习使用,并无侵权之意,也无为他人师之心。本人目前只是大一学生,仅有微薄的C语言基础,水平有限,难免对刘老师的课程内容有所曲解,欢迎大家指正和教导,希望各位不吝赐教。
一、构成C#语言的基本元素
(1)标记(Token):对于编译器有意义的符号,即编译器能识别
(2)关键字(Keyword):构成一门编程语言的基本词汇
下面这张表格的内容,在任何时候都是关键字。
下图为上下文关键字:在某些上下文中,它是关键字,一旦脱离了上下文,它便不是关键字。
学习关键字时,要按照逻辑来学,而不是按照字母顺序学。
(3)操作符(Operator):顾名思义,用来表达运算思想的符号,例如:加减乘除。
以后我们会详细的介绍每一种操作符。
(4)标识符(Identifier):通俗的讲,标识符即名字
1.什么是合法的标识符:编译器能编译过去的操作符
首先标识符不能与关键字冲突,可以用字母,数字,下划线来组成标识符,但是不能以数字开头。如果执意要把关键字当做标识符,那么可以在其前面加上"@"符号。
2.大小写规范:
假设一个变量的标识符时:myvariable,此时两个单词连在一起,不容易区分,这时就需要有一个大小写规范。
①驼峰法(Camel):变量名用的都是Camel法
当两个单词连在一起时,第一个单词首字母小写,第二个单词首字母大写。
比如:myVariable,这样,就很容易把两个单词区分开来。
因为第一个字母小写,中间的一个字母大写,标识符整体来看像骆驼一样,所以叫做驼峰法。
②Pascal法:方法,类名,名称空间等用的都是Pascal法
构成你的每一个单词的首字母都要大写
如:MyVariable
3.命名规范:所取的名字要有意义
给类命名的时候,标识符要是一个名词
给方法命名的时候,标识符要是一个动词或者动词短语。因为方法表示一个类能够做什么。
(5)标点符号
如图中,100后面的分号,表示这个而语句结束了,这就是一个典型的标准符号。
又比如在for中,圆括号中的分号,也是标点符号。
名称空间,类,方法的花括号,都是标点符号,他们都不参与运算。
(6)文本(字面值)
举个例子,刘老师今天嗓子不舒服,去食堂吃馒头,师傅问他吃几个,他深处两根手指头,师傅就立刻明白了他要两个包子,那为什么不是三个,也不是四个呢?因为刘老师伸出2来,这就是一个字面值,人人都知道这个2对应数量2。
如果我们在程序中这样写: int x = 2 ;其中2这个字面值2就是数学领域对应的2,看到它你就会知道它不是3,不是4。
1.整数:
整数包括两种,分别是int和long
int用32个比特位来表示一个数字,而long用64个比特位来表示一个数字。
以十进制为例,如果给你两位,那么你最多能表示到99,如果给你四位,那么最多可以表示到9999,可见位数越多,能表示的数字范围越大。
如果要把一个数字赋给long类型的变量,要在后面加上后缀"L"
2.实数(浮点数/小数)
实数类型分为float(单精度浮点数)和double(双精度浮点数)
float类型用32位表示一个浮点数,而double用64位表示一个浮点数。
一般来说,float类的数据可以精确到小数点后七位,而double类的数据可以精确到小数点后15-16位。
一般来说,小数会被编译器默认成double类型,若想把一个小数赋给float类型的变量,应该在其后面加上F后缀,而赋给double类型变量的小数,在其后面加不加后缀"D"均可。
3.字符(char类型)
char c = 'a';
其中字符要用单引号引上,在单引号内只能有一个字符,如果输入的字符太多,则编译器会报错。
4.字符串(string类型)
string str = " 2022元旦快乐!";
字符串字面值是双引号引起来的一串字符,也可以是空字符串。
5.布尔值(bool)
bool t = true;
bool false = false;
其中true和false即是布尔类型的字面值。
6.空(null)
啥也没有,如: string str = null;
这就是声明了一个空字符串。
7.注释与空白
Ⅰ注释:注释在编译时,编译器会把注释当作空白
单行注释,如下图绿色部分,单行注释用"//"来开始
多行(块注释):块注释的格式如下图,"/*......*/",其中省略号里为注释的内容。
但是,不能再块注释的开头使用行注释,语法会出错,还有,块注释不能嵌套。
Ⅱ空白:我们在写程序的时候,往往会使用空格使我们的代码结构更加清晰。
有的时候是必须加空格的:不然编译器不知道你要干啥
那如果加多了会怎样呢?我们的编译器会把多余的空白都删除嗲,仅保留一个空白
如果你的空白加多了,想要规范一下,那咋办呢?可以选择设置文档的格式,如下图。
英文版
使用前:
使用后:
非常滴银杏
二、初识类型,变量,与方法
(1)类型(Type),亦称数据类型(Data Type)
在编程的过程中,各种各样的数据都有自己的类型。
在C#中,有这样一个关键字:var。使用var声明一个变量,在给该变量初始化/赋值之后,编译器hi自己识别该数据是什么类型的。
如上图,我们将3赋给x之后,编译器便能推断3是什么类型的,通过变量的GetType方法,我们可以知道该变量是什么类型的数据,运行结果如下,它的类型是int32,即int。
若把3改为3L呢?如下图,它的类型是int64,即long。
尽管3和3L的数值相等,但是由于他们的数据类型不同,所以他们在内存中的存储方式也是不一样的。不单是存储方式,对于不同类型的数据使用相同的操作符,其结果也可能不同。
数据类型除了在声明变量时起作用,在声明方法(函数)时,来表示方法(函数)的结果是什么类型。
下面我们来认识一下变量和方法。
(1)变量:
变量是存放数据的地方,简称"数据"
变量的声明:要声明一个变量,那么要在变量的标识符前面加上该变量的数据类型,如下图第一行
什么类型的变量用来装什么类型的数据,如果数据类型不符合,则编译器会报错。
(2)方法:
方法(旧称函数)是处理数据的逻辑,又称"算法"
方法的声明:去声明并且定义一个方法,可以理解为,给方法起名字,并且定义它是做什么的。
我们可以将方法看作是一个数据的加工厂,首先这个加工厂得有个自己的名字,其次这个加工厂需要原料,而大多数情况下加工厂需要把加工过后的成品返回出去。那么这就引出了我们声明方法时必不可少的四个部分:
1.方法的标识符(名字)
2.方法的返回值类型
方法的返回值类型说明了该方法在加工完了数据之后返回的向被调方法返回的数据是什么类型的,如下图所示,在方法的标识符前面加上数据类型关键字来说明返回值是什么类型的。
3.方法的参数
方法的参数是一种变量——参数变量,参数变量往往在参数列表中声明,如下图所示。
4.方法体
方法体是一个方法"{}"中的内容,其中的代码是方法实现功能的关键。如下图:
5.方法的声明在返回值前还包括修饰符,在此暂时不做展开,后面会讲。
方法的调用:在声明一个方法之后,我们想用它的时候,该怎样做。
现在我们在一个Calculator的类里面写了一个方法,如下图所示。
我们通过"."修饰符来调用这个方法,如下图所示:
注意,在函数声明前有一个public修饰符,其作用是:在该类外,程序也能访问到该方法。
倘若我们不添加public修饰符,那么再尝试调用Add方法,结果如下。
(3)下面我们来看一些其他的方法
有些方法不需要数据原料,即没有参数,如图所示。
运行结果如下
还有一些方法,他们只做一些事情,而没有数据返回
运行结果: