Unity学习笔记02 —— C#语法

2023-06-20,,


C#语法

控制台 Console

Console.WriteLine();
Console.ReadLine();

随机数 Random

Random random = new Random();
random.Next();

变量

变量类型 变量名

int
float
char
string
bool
var 推断类型

数据类型转换

.Parse();
.ToString();
隐式转换
显示转换

方法

private static void Func() {}

数组

//声明赋值
int[] arr = new int[]{0,1};
Array arr = new int[]{0,1};
int[] arr = {0,1};
//二维数组
int[,] arr = new int[2,2];
//数组遍历
foreach (int i in arr) {}
//长度
arr.Length
//清除
Array.Clear
//复制
Array.copy
arr.CopyTo
//查找
Array.IndexOf
Array.LastIndexOf
//排序
Array.Sort
//反转
Array.Reverse
//克隆
arr.Clone

参数

值参数 传递信息

int a = 1;
Fun(a);
private static void Fun(int a){}

引用参数ref 改变数据

int a = 1;
Fun(ref a);
private static void Fun(ref int a){}

输出参数out 返回结果

int a;
Fun(out a);
private static void Fun(out int a){
a=2;
}

拆装箱

装箱box

值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程。

内部机制:

1.在堆中开辟内存空间

2.将值类型的数据复制到堆中

3.返回堆中新分配对象的地址

拆箱unbox

从object类型到值类型或从接口类型到实现该接口的值类型的显式转换。

内部机制:

1.判断给定类型是否是装箱时的类型

2.返回已装箱实例中属于原值类型字段的地址

注意:

拆箱后的类型必须与装箱时的类型相同。
伴随拆箱的字段复制步骤不属于拆箱过程。
装箱和拆箱不是互逆的过程,装箱的性能开销远大于拆箱。

String

特性

字符串常量具备字符串池特性

字符串常量在创建前,首先在字符串池中查找是否存在相同文本。如果存在,则直接返回该对象引用;如果不存在,则开辟空间存储。

目的:提高内存利用率。

字符串具有不可变性

字符串常量一旦进入内存,就不得再次改变。因为如果在原位置改变会使其他对象内存被破坏,导致内存泄漏。当遇到字符串变量引用新值时,会在内存中新建一个字符串,将该字符串地址交由该变量引用。

StringBuilder

可变字符串,一次开辟可以容纳n个字符大小的空间

优点:可以在原有空间修改字符串,避免产生垃圾

适用性:频繁对字符串操作

StringBuilder builder = new StringBuilder();
build.Append();
build.Insert();
build.Replace();
build.Remove();
build.ToString();

Unity学习笔记02 —— C#语法的相关教程结束。

《Unity学习笔记02 —— C#语法.doc》

下载本文的Word格式文档,以方便收藏与打印。