c#是一种面向对象的编程语言,在面向对象的程序设计方法中,程序有各种相互交互的对象组成
c#中的函数区别于java中的方法,由于个人是在学习过java的基础上再学习c#,和java类似的知识点就不做归纳啦,该知识点只是个人暑假学习理解上的一部分归纳,可能存在错误,欢迎大家评论。
Using System; // 引入命名空间
Namespace 名字 {//命名空间名字 与项目名保持一致
Class 名字{//与文件名保持一致
Static void Main(string[] args){
Console.writeline(“hello world!”)
}
}
}
Console.write() ------不换行
Console.writeline() -----换行
用户输入
String str=Console.readline();-----得到的是一个字符串类型
Int strint=Convert.toint32(str); -----将字符串是数字的转化为整数
格式化输出
Console.writeline(“{0}+{1}+{2}”,a,b,a+b); -----大括号内的可以重复,{0}+0}={2} 不可以超出范围,从0开始
转义字符与@
\ 转义字符
\n 换行 \t 空格(tab键)
Console.writeline(@“c:\a\b\c”) -------- 加上@ 转义字符就没有意义
快捷键
F5 ----- 执行
Ctrl+A ----- 全选
Ctrl+k + ctrl+c 注释 ctrl+k + ctrl+u 取消注释
运算
Double f=45/10.0 ------其中有一个数是小数 计算的值就是小数
Int b=a++ -------先赋值再自增
Console.writeline(a++) -------先复制 结果为5
Console.writeline(a) ------后自增 结果为6
二进制转化为十进制 ----二进制的每一位分别乘以二的几次方从个位的零次方开始每位再进行相加
十六进制转化为十进制 -----十六进制的每一位分别乘以十六的几次方从个位的零次方开始每位再进行相加
十进制转化为二进制 ------ 二进制的数除以二 直到商为零为止 得到的余数从下往上读
十六进制转化为十进制 ------ 十六进制的数除以十六 直到商为零为止 得到的余数从下往上读
基本数据类型
整型
Sbyte ---- 1个字节
Byte ------1个字节 存正数
Short -----2个字节 存正数
Ushort -----2个字节
Int ----- 4个字节 存正数
Uit ----- 4个字节
Long ---- 8个字节 存正数
Ulong ----- 8个字节
浮点型
Float double ------ 常用
decimal
布尔类型
bool
隐式转换 ----- 小的类型转换为大的类型 不会导致数据的丢失
显示转换(强制转换) ----- 会导致数据丢失
数组的遍历
Foreach(int a in b){
}
类
创建对象的模板
包含数据成员 函数成员
要点
当类被实例化后,先创建静态变量,后创建动态变量,先静态构造函数,后动态构造函数,当类中不包含静态变量,实例化之后,静态构造函数依然会执行
构造函数
创建对象时执行的一个函数,对象创建后用来创建变量并给变量赋值使用
划分为静态与动态
静态
创建类的静态变量
动态
创建类的动态变量(实例变量)
划分为隐式与显式
隐式
不声明,创建对象时系统直接调用
显式
在函数体内添加一些语句,完成一些操作
值在内存中的变化
对象引用的改变
虚方法
父类中的方法 加上virtual
子类重写 加override
函数重载
函数名 参数个数 参数类型 相同
枚举
Enum 枚举名{枚举1,枚举2….} 定义在namespace 中最适当
声明 引用
枚举名 变量名=枚举名.枚举成员 ones one=ones 成员
将string 转化为枚举类型
名 变量名=(枚举名)enum.prase(typeof(枚举名),字符串变量名)
Arraylist
添加 插入 删除 方便
声明时不需要固定的长度
存储数据时是object类型
字典
声明时 同时声明dictionary 键与值得类型 键唯一而值可以不唯一
赋值时 如果这个键已经有值 会覆盖掉之前的值
REF
引用传递
OUT
当参数没有赋值时被函数调用 引用传递
结构体
Public struct 结构体名{成员变量列表; } --------- 定义在主方法外
变量声明 --------struct 结构体名 变量名;
初始化 -------- 结构体变量.成员变量=值
结构体类型成员变量的引用
结构体变量.成员变量
结构体数组 ---------结构体名[] 数组名;
创建 ------ 数组名=new 结构体名 [数组长度];
初始化 ------数组名[下标].成员变量=值
引用 ------数组名[下标].成员变量
---------------------------------------------------------------------------------------------------------------------------------
Base
使用时 同时执行父类对象中的同名函数 执行父类构造函数
Enemy enemy=New Boss(); ---------- 子类构建的对象传给父类 无法用子类的某些功能
String.create -------生成一个字符串
String.concat 或 String.join ------- 字符串连接
排序
Array.sort(数组名); 低到高 升序
Array.reverse(数组名) 反转 高到低 先升再反
Tolower() --------大写变小写 返回一个新的
Toupper() ---------变成大写 返回一个新的
Var -----匿名类型
Class DrivedClass1:BaseClass
子类实例化时 先执行父类构造函数(默认无惨构造函数) 后执行自身构造函数
静态常量
const ---- 对常量进行解析 将所有常量引用替换为相应值
动态常量
readonly-----只能声明为类字段 声明的同时初始化 构造函数中初始化 完成后无法对其进行修改
C# switch -------每一个case 后面都要跟上一个 break