
U3DCSharp 基础知识
原创2025年1月10日...大约 7 分钟
U3DCSharp 基础知识
C# 语言介绍
CSharp 是一种面向对象的编程语言,主要用于开发运行在 .Net 平台上的应用程序。特点:
.NET Framework 和 .NET Core。
C# 的应用领域
C# 项目结构
变量、常量和数据类型
运算符、表达式、占位符、转义符
string name = "aaron";
string sex = "男";
int age = 18;
Console.WriteLine("我叫{0},性别是{1},年龄是{2}",name,sex,age);
Console.ReadKey();
\' 单引号 char c = '\'';
\" 双引号 string s = "He said, \"Hi!\"";
\\ 反斜杠 string path = "C:\\Windows\\";
\0 空字符(Null) char nullChar = '\0';
\a 警报(响铃) Console.Write("\a");
\b 退格(Backspace) Console.Write("A\b");
\f 换页(Form Feed) (较少使用)
\n 换行(LF,Unix 风格) Console.Write("Line1\nLine2");
\r 回车(CR,旧 Mac 风格) Console.Write("Line1\rLine2");
\t 水平制表符(Tab) Console.Write("Name:\tAlice");
\v 垂直制表符 (较少使用)
类型转换
float a =10;
double b =10;
b=a;
float a =10;
double b =10;
a=(float)b;
string a ="10";
float b =10;
b=Convert.ToSingle(a);
string a ="10";
float b = float.Parse(a);
string a ="10";
float b = float.PTryParse(a);
语句
if(条件表达式){}
if(条件表达式){}else{}
if(条件表达式){}elseif(条件表达式){}else{}
switch(变量或表达式的值)
{
case:
break;
}
for(初始表达式;条件表达式;增量表达式){}
while(循环条件){}
do{}while(循环条件);
break和continue
数组
具有相同数据类型的一组数据的集合。固定大小,空间连续。
数组声明
int[] a = new int[3]{1,2,3}
int[] a = new int[]{1,2,3}
int[] a = {1,2,3}
int[] a = new int[3]{1,2,3}
数组取值
a[0]
int[] Array = new int[3]{1,2,3}
遍历数组
foreach(int item in Array){}
冒泡排序
int[] nums = new int[]{45,27,43,65,36,5,7,12}
private void SortBubble(int[] nums){
for(int i=0;i<nums.length-1;i++){
for(int j=0;j<nums.length-i-1;j++){
if(nums[j]>nums[j+1]){
int temp = nums[j+1];
nums[j+1]=nums[j];
nums[j]=temp ;
}
}
}
}
值类型和引用类型
值类型赋值拷贝的是值。
引用类型赋值是引用的拷贝。
函数、形参、实参、返回值
//a b 形参 int 返回值类型
public static int Test(int a,int b){
return a+b; //返回值
}
//1 2 实参
Test(1,2)
函数重载
方法名相同,参数不同。
函数高级参数
int number = 20;
Console.WriteLine(num);
static void Add(ref int num){
num+=10;
Console.WriteLine(num);
}
Add(ref number);
Console.WriteLine(num);
//结果是 20 30 30
int max = 0;
int min = 0;
static void Compare(int num1, int num2,out int max,out int min){
max=num1>num2?num1:num2;
min=num1>num2?num2:num1;
}
Compare(10,20,out max,out min);
Console.WriteLine(max);
Console.WriteLine(min);
//结果是 20 10
递归
递归算法是一种直接或间接调用自身函数或者方法的算法。
static int Add(int num){
if(num == 1)return num;
return num + Add(num - 1);
}
类
类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用。
类就相当于汽车的图纸,是一个模板,是负责创建对象的。
对象
对象是类创建出来一个具体存在,是可以直接使用的。
由哪个类创建出来的对象,就拥有哪个类中定义的属性和方法。
对象就相当于汽车图纸制造的汽车。
在程序开发中现有类,后有对象。
类和对象的区别
类是模板,对象是按照这个类创建出来的,先有类,再有对象。
创建一个类,按照这个类可以创建多个对象。
不同对象之间的属性的具体内容可能各不相同。
类中定义了什么属性和方法,对象就有什么属性和方法,不可能多,也不可能少。
字段
字段就是变量,变量在面向对象中的类中就称为字段。
属性
对象的特征描述通常定义成属性。
对象的行为通常定义成方法。
封装
将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类。
继承
父类有的子类就有,可以减少代码重复。
多态
同一种实现的多种不同表现形式。
子类对父类方法的重写。
抽象类、抽象方法、虚方法
接口
一种规则,约定能做什么。
当抽象类中的所有方法都是抽象方法时,就可以表现为接口。
接口一般以I开头,这是一种约定俗成的规定。