Unity学习笔记C#部分

1. ## If判断可以不用加{}大括号

2. ## 怎样学习好编程

2.1: 记忆 记忆格式 他人写的步骤 
2.2: 练习 抄代码 用心三遍 
2.3: 理解 为什么这样做...

3.计算机内存:

1. **在程序进入内存的时候 我们IT工程师,把程序占据的内存认为分为4部分.** 
    1. 堆 --> 存储引用类型 数组 字符串 class 等
    2. 栈 --> 存储值类型的值, 所有方法和变量都在栈中 程序运行在栈中
    3. 全局 --> 全局的量
    4. 代码  --> 存放代码

4.进制:

1. 十进制转换二进制
    除二取余法
2. 二进制准换10进制
    按位展开法的逆向 X*2^N 

在编程中默认编码格式为utf8 utf8是一种文件的编码格式,若编码格式不对应就会产生乱码的情况
UTF8 --> UTF8
C#会形成一个称谓IL的中间语言, 这个中间语言会在我们学习热更新的时候用到 这个知识点就背会吧. 其实在开发中我们不用管的

5.unity常用的:

1. int  4
2. string 
3. float 4
4. bool 1
5. class 
6. char 2 
7. double 8
8. enum 表示枚举类型   常用于unity编程 状态机

只要在int类型表示范围内统统int + - 21亿 -2147483648 + 2147483647

6.运算符:

/ %
! ==
^ | & 位运算
&& || ! 用于if判断逻辑中
++i i++ 在赋值号存在的情况下, 没有赋值号 ++i i++ 都是自增
i++ 先赋值在自增
++i 先自增,在赋值
X = (bool) ?Number01:Number02; 相当于一个简单的if else

当bool为真 X = Number01
当bool为假 X = Number02

7.表达式:

用赋值号链接的式子称谓表达式 A = B

foreach本质是迭代器,迭代器本身就是不能进行修改的 所以foreach不能修改, 要想修改数组必须使用for循环

8.数组: 相同数据类型的组合

1. 特性数组长度固定 在使用数组的时候必须固定大小
2. 数组是引用类型
3. 索引从0开始
4. 遍历数组使用foreach还是使用for  都行 
5. 修改数组使用foreach or  for 

9.规则:

1. 方法命名是用帕斯卡
2. 变量使用驼峰
3. is开头的都是bool I开头的都是接口 abs开头的是抽象类 
4. 弄一个变量在这里必须赋初值

10.面向对象编程OOP的三个特征:

继承,多态,封装.
多态的终极目标是:父类控制子类,父类可以调用子类的方法.(一般用于后期学习的框架编程)

oop编程指的是面向对象的编程,
这是一个抽象的概念,用代码表示就是new的基本对象.

一个方法有多个参数为 重载

char.IsDight 判断该char是否是10进制数值.

11.字符串:

有下标,有遍历,不能改变.

12.字符串的七个特点:

   1.比较字符串(忽略大小写)           
   2.比较字符串(不忽略大小写)
   3.分割字符串
   4.查找字符串
   5.替换字符串 都换
   6.截取字符串
   7.空格处理

13.

out是传出参数 在方法内部必须赋值
ref是传入参数 在方法外部必须赋值

14.

命名空间是包含所有类的集合

15.

base是访问基本基类成员 就是访问父类成员(保护和公开的部分)在方法中调用

16.

public公开 protect保护 provide私有

17.

抽象类虚方法存在接口的意义是为了多态.

18.

按位展开法 2进制转10进制的方法
比如 1010 即 最后一位往前一位依次相加
0x2的0次方+1x2的1次方+0x2的2次方+1x2的3次方

19.代码规整的方法

可以规整的建立多个方法
static void
最后用
static void main 来总结 这样可以显得比较整齐和有逻辑性

20.关于List和ArrayList

ArrayList 和 List 的使用方法是一样的
List 更加 安全
在动态数组中 Count和Length 的意思是一样的
List带泛型,数据类型不丢失
ArrayList<>不带泛型,数据类型可以丢失
ArrayList需要装箱拆箱,List不需要装箱拆箱

21.定义常量最好使用运行是常量就是readonly 编译常量就是 const

1 public static readonly MyClass myClass = new MyClass();
2 public static readonly string userName = “张三”; //
3 public const string userPwd = “1234”; //数字和string 效率高,灵活性低

22.类型转换 如果使引用类型转换就采用 as/is 值类型采用强制转换

Unity学习笔记C#部分_第1张图片

23. 方法编写要简短精悍 这种方法可以让JIT把变量存储在寄存器而非栈中 优化速度

1 //在Demo01中if 和 else中的代码逻辑都会被编译
 2   static void Demo01(bool isDone)
 3         {
 4             List<int> list = new List<int>();
 5             if (isDone)
 6             {
 7                 list.Add(1);
 8                 list.Add(10);
 9                 list.Add(100);
10                 list.Add(1000);
11             }
12             else
13             {
14                 list.Add(2);
15                 list.Add(20);
16                 list.Add(200);
17                 list.Add(2000);
18             }
19         }
20 //在demo02中if 和 else 中逻辑会根据isDone来选择一个进行编译 所以推荐使用Demo02的写法     
21  static void Demo02(bool isDone)
22         {
23             if (isDone)
24                  Demo02TrueMethod();
25             else
26                  Demo02FlaseMethod();
27 
28         }

24.申明变量的时候最好进行初始化,而非在方法或者构造函数中赋值

Unity学习笔记C#部分_第2张图片

25. 若一个类中有静态量 那么该静态量最好放在静态构造函数中去赋值

Unity学习笔记C#部分_第3张图片

26. C#实例化对象的执行顺序

1. 静态变量设置为 0 ;
  2. 执行静态变量初始化器;
  3. 执行基类的静态构造函数;
  4. 执行静态构造函数;
  5. 实例变量设置为 0;
  6. 执行实例变量初始化器;
  7. 执行基类中合适的实例构造函数;
  8. 执行实例构造函数。

27. 如何降低在程序中创建的对象

  1. 用全局变量代替局部变量
  2. 使用单例模式来减少new对象

28.OOP中的接口和基类之间的区别

基类描述了对象是什么,接口描述了对象如何表现它的行为

29.MVC指的是什么

指的是 Model View Controller
是一种软件设计典范,用一种 业务逻辑数据界面显示分离的方法 组织代码,将业务逻辑聚集到一个部件里面.

30.数据结构(背会)链表头插倒序, 尾插为正序

31.Lambda 表达式: ( 符号是=>)

Unity学习笔记C#部分_第4张图片

32.二重遍历序列

(树序列[根序列---->子序列---->叶序列])
前序 先根再左再右
中序 先左再根再右
后序 先左再右再根

你可能感兴趣的:(笔记)