运行时有几个步骤
- 编写代码
- 编译代码 将我们源代码转换成机器可以运行的程序 编译器 编译错误(语法错误)逻辑错误
- 运行程序
namespace 命名空间名称
作用:解决命名冲突,当出现两个以上相同的命名类或方法时,使用命名空间去区分我们到底调用的时那个类或那个方法
C#程序里面基本内容包含在一个命名空间
调试程序
断点
运行调试F5
直接运行ALT+F5
F11 逐语句 每一条语句都要调试执行。当执行到函数的时候,进入到函数中去执行
F10 逐过程 只执行每一个过程,当执行到函数的时候,直接执行函数,不进入函数内部
Shift+F11 跳出,跳出我们当前执行的函数返回上一级。
计算机内的存储单位
bit位 只可以表示0 1(计算内存的最想计算单元)(二进制)
B byte 字节 1Byte=8bit
KB 1KB=1024B
MB 1MB=1024KB
GB 1GB=1024MB
基本数据类型--整形
Byte类型 1字节
无符号Byte类型 byte 0~255
有符号Byte类型 sbyte -127~126
无符号 非负数
整形
类型 | 取值范围 |
---|---|
sbyte | 有符号数,占用1个字节,-2^7~2^7-1 |
byte | 无符号数,占用1个字节,0~2^8-1 |
short | 有符号数,占用2个字节,-2^15~2^15-1 |
ushort | 无符号数,占用两个字节,0~2^16-1 |
int | 有符号数,占用4个字节,-2^31~2^31-1 |
uint | 无符号数,占用4个字节,0~2^32-1 |
long | 有符号数,占用8个字节,-2^63 ~2^63-1 |
ulong | 无符号数,占用8个字节,0~2^64-1 |
浮点型
类型 | 取值范围 |
---|---|
float | 单精度浮点型4个字节 |
double | 双精度浮点型8个字节 |
decimal | 更高精度浮点型占用16个字节 |
C#中小数默认为double类型
在基本数据类型中,除了string其他都是值类型。
值类型在传递的时候传值,引用类型在传递的时候传引用、方法。
if(逻辑表达式)……else……
switch(表达式)……case……
表达式可以整形、字符串、枚举
循环控制语句
for循环 循环执行一段代码,直到不满足循环条件
while(循环条件)
do……while(循环条件)
break 跳出当前整个循环
continue 跳出当前单次循环
goto语句 直接跳转语句
首先需要定义标签 名称:
不建议在项目使用goto 容易使得代码逻辑混乱
C#中预处理指令以#开头
对于static成员来说,它不属于任意一个对象,而是属于所有对象,当前类。
abstract 修饰的类叫抽象类
abstract修饰的方法叫抽象方法
对于类来说属性一般不对外暴露,实现get和set访问器进行封装
函数==方法
静态代表全局
静态成员和非静态成员在调用时的区别
非静态成员 静态成员
需要被对象调用 只能通过类名调用
可以调用静态成员 不可以调用非静态类的成员
方法内部修改引用类型形参,会影响实参
方法内不修改值类型形参,不会影响实参
8.18
static 修饰类
被static修饰的类叫静态类 特点:静态类中只能包含静态成员(静态方法,静态属性,静态字段)
没有被static修饰的类叫非静态类 特点:非静态类中既可以包含非静态成员,也可以包含静态成员
静态成员和非静态成员
静态成员被static修饰 被称为静态成员
非静态没有被static修饰 被称为非静态成员
静态成员:它是属于当前类,而不是属于某一个对象。访问时是通过类名去访问。
非静态成员:属于某一个对象。只有被对象实力化之后它才存在。访问时通过对象进行访问的
静态的使用场景:一般工具类,或者提供某种共通功能。不依赖对象。
Conver 先调用父类的结构器,在调用自己的结构器。
this 指向我们当前的对象