基础语法
有符号数可以表述负数,无符号数仅能表示正数,在其类型名称前面加上了u字符则为无符号类型。
默认的整型是int类型。
不兼容类型转换:Convent.ToDouble转换为double类型
修饰符
访问修饰符、修饰符、数据类型、字段名:
1.访问修饰符:
a. public 任何代码访问
b. private 同一类代码访问。(默认)
c. intermai 仅同一个项目中代码访问。
d. protected 只能由类或派生类中的代码访问
2.修饰符
a. redonly 只能读取该字段的值而不能给字段赋值。
b. static 静态字段,可以直接通过类名访问该字段 “类名.类成员”。
get和set方法
简写: public 数据类型 属性名(get;set)
只读属性直接省略 set访问器即可。
析构方法
是在垃圾回收、释放资源时使用的,在程序结束后自动被调用的。
1. ~类名()
2. {
3. 语句块;
4.}
参数
引用参数: ref关键字
带输出参数的形式参数赋值。
lambda表达式
访问修饰符 修饰符 返回值类型 方法名(参数列表) =>表达式
嵌套类
调用需使用 “外部类、嵌套类"
若为静态成员,则通过 ”外部类、嵌套类、静态成员“
部分类
访问修饰符 修饰符 partital class 类名{....}
当一个类中的内容较多时将相似类中的内容拆分到不同的类中,并且部分类的名称必须相同。
控制台操作
方法 | 描述 |
Write | 向控制台输出内容后不换行 |
WriteLine | 向控制台输出内容后换行 |
Read | 从控制台上读取一个字符 |
ReadLine | 从控制台上读取一行字符 |
Console.Write(格式化字符串,输出项,输出项2);
格式化字符串中使用(索引号)的形式,索引号从0开始,输出项1填充{0}位置的内容,依次类推
Math类
方法 | 描述 |
Abs | 取绝对值 |
Ceiling | 返回大于或等于指定的双精度浮点数的最小整数值 |
Floor | 返回小于或等于指定的双精度浮点数的最大整数值 |
Equals | 返回指定的对象实例是否相等 |
Max | 返回两个数中较大数的值 |
Min | 返回两个数中较小数的值 |
Sprt | 返回指定数字的平方报 |
Round | 返回四舍五入后的值 |
Data Time
方法 | 描述 |
Date | 获取实例的日期部分 |
Day | 获取该实例所表示的日期是一个月的第几天 |
DayOfWeek | 获取该实例所表示的日期是一周的星期几 |
DayOfYear | 获取该实例所表示的日期是一年的第几天 |
Add(Timespan value) | 在指定的日期实例上添加时间间隔值 value |
AddDays(double value) | 在指定的日期实例上添加指定天数 value |
AddHours(double value) | 在指定的日期实例上添加指定的小时数 value |
AddMinutes(double value) | 在指定的日期实例上添加指定的分钟数 value |
AddSeconds(double value) | 在指定的日期实例上添加指定的月份 value |
AddMonths(int value) | 在指定的日期实例上添加指定的月份 value |
AddYears(int value) | 在指定的日期实例上添加指定的年份 value |
字符串
1. Parse 方法用于将字符串类型转换成任意类型。
数据类型 变量二数据类型.Parse(字符串类型的值);
int num1 = int.Parse(Console.Readl.ine( ) );
继承类
使用: 完成类继承
访问修饰符 class ClasA:ClassB
子类调用父类: base.父类成员
重写父类方法: override
public override int Ares (int x, int y)
在子类中重写父类中的方法后能改变方法体中的内容,但是方法的定义不能改变定义为继承类可重写: virtual
通常将类中的成员定义成虚拟的,表示这些成员将会在继承后重写其中的内容,声明抽象类或抽象方法: abstract
通常抽象类会被其他类继承,并重写其中的抽象方法或者虚方法
密封类: sealed 密封类不能被继承,密封方法不能被重写
子类调用父类无参构造器:直接在构造器后面使用 “:base(参数)”的形式即可
接口
使用:完成接口
interface 接口名称
名称:通常是以 I 开头
- 接口中的成员不允许使用 public ,private ,protected ,internal 访问修饰符 (因为接口是需要外面接口去实现方法体,所以其修饰符必定是public , C#默认为public)
- 接口中的成员不允许使用new , static , virtual , abstract ,sealed 修饰符 (当一个接口继承另一个接口时,可用new关键词隐藏父接口的方法)
- 在接口中不能定义字段
- 在接口中定义的方法不能包含方法体
规定不能直接创建接口的实例,只能通过类实现接口的方法。
接口和继承的区别
继承实现 “ 是不是 ”,接口则为 “ 有没有 ”
继承自 “ 抽象类 ", 只能继承单个,而接口则可以为多个 。
集合
ArrayList()
使用()中的值即集合中存入的值
泛型
泛型是在 System.Collections.Generic
用同一个方法来处理传入不同类型参数的方法
Nullable<int> 或int?
交互模式
C/S:客户机(Client)/服务器模式
B/S:浏览器(Browser)/服务器模式
静态和非静态的区别
非静态类中,可以有实例成员(非静态成员),也可以有静态成员。
- 调用实例成员 对象名.实例成员
- 调用静态成员 类名.静态成员
静态函数中,只能访问静态成员,不允许访问实例成员
实例函数中,既可以使用静态成员,也可以使用实例成员
静态类中只允许有静态成员,不允许出现实例成员
使用:
将类当作 ”工作类 “使用时考虑将其写成工具类
静态类在整个项目中资源共享
构造函数
作用:帮助我们初始化对象(给对象的每个属性依次的赋值)
构造函数是一个特殊的方法
- 构造函数没有返回值,void也不能写
- 构造函数的名称必须跟类名一样
- 访问修饰符必须是public
创建对象的时候会执行构造函数
new关键字
- 在内存中开辟一片空间
- 在开辟的空间中创建对象
- 调用对象的构造函数进行初始化对象
this关键字
- 代表当前类的对象
- 在类当中显示的调用本类的构造函数 :this