当前位置: 首页 > news >正文

c sharp基础

数据类型

无符号变量:byte、ushort、uint、ulong
有符号变量:sbyte、shor、int、long
浮点数:float、double、decimal
特殊类型:bool、char、string

枚举

概念

枚举是整形常量的集合。
枚举名:以 E 或者 E_ 开头,作为命名规范

enum E_Numbers{ number1 = 3,//默认值为3 number2,//默认值为4 number3;//默认值为5,递增 }
申明枚举
  1. namespace语句块中(常用)
  2. class语句块中、struct语句块中
  3. 枚举不能再函数语句块中申明
使用枚举
E_Numbers Number = E_Numbers.number1; //结合switch switch(Number){ case E_Numbers.number1: break; case E_Numbers.number2: break; case E_Numbers.number3: break; }
枚举的类型转换
  1. 枚举和int转换int i = (int)Number;int 转枚举Number = 3
  2. 枚举和string相互转换string str = Number.ToString();传的是number1 string转换成枚举Number = (E_Number)Enum.Parse(typeof(E_Number), "Other");把原本的number1转化成Other
枚举的作用

在游戏开发中,对象有很多的时候,会有许多的状态。
比如玩家,有一个动作状态,我们需要用一个变量或标识,来表示当前玩家处于哪种状态。
综合考虑可能会用int来表示状态。
1 行走 2 待机 3 跑步 4 跳跃

数组

一维数组

int[] arr1; int[] arr2 = new int[5]; int[] arr3 = new int[5]{1,2,3,4,5}; int[] arr4 = new int[]{1,2,3,4,5,6}; int[] arr5 = {1,2,3,4,5};

数组长度:array.Length
数组元素:array[0]

二维数组

int[,] arr1; int[,] arr2 = new int[3,3]; int[,] arr3 = new int[3,3]{ {1,2,3}, {4,5,6}, {7,8,9}}

数组长度:行:array.GetLength(0);列:array.GetLength(1)
数组元素:array[0,1]

交错数组

int[][] arr1; int[][] arr2 = new int[3][]; int[][] arr3 = new int[3][]{new int[]{1,2,3}, new int[]{1,2,3}, new int[]{1,2,3}};

数组长度:行:array.GetLength(0);某一行的列:array[0].Length
数组元素:array[0][1]

值类型和引用类型

引用类型:string、数组、类
值类型:其他、结构体
数组:int arr2[] = arr1,当改变arr2时,arr1改变
string:string str2 = str1,当改变str2时,str1不变

函数

函数创建

  1. class语句块中
  2. struct语句块中

ref和out

可以在函数内部改变外部传入的内容

Ref

ref传入的变量必须初始化,out不用。

static void ChangeValueRef(ref int value){ //value = 3; } static void ChangeArrayRef(ref int[] arr){ arr = new int[] {10,20,30}; } //调用 static void Main(string[] args){ int a = 1; int[] arr1 = {1,2,3}; ChangeValueRef(ref a); ChangeArrayRef(ref arr1); }
Out

out传入的变量必须在内部赋值,ref不用

static void ChangeValueOut(out int value){ value = 3; } static void ChangeArrayOut(out int[] arr){ arr = new int[] {10,20,30}; } //调用 static void Main(string[] args){ int a; int[] arr1; ChangeValueOut(out a); ChangeArrayOut(out arr1); }

变长参数和参数默认值

变长参数 params

params int[]意味着可以传入n个int参数,n可以等于0,传入的参数会存在arr数组中。

static int Sum (params int[] arr) { int sum = 0; for(int i = 0; i < arr.Length; i++){ sum += arr[i]; } return sum; }

注意:

  1. params关键字后面必为数组。
  2. 数组的类型可以是任意类型。
  3. 函数参数可以有别的参数和params关键字修饰的参数。
  4. 函数参数中只能最多出现一个params关键字,并且一定是在最后一组参数,前面可以有n个其他参数。
参数默认值

有参数默认值的参数一般称为可选参数
作用是 当调用函数时可以不传入参数,不传就会使用默认值作为参数的值。
static void Speak(string str = "我是默认值"){}注意:

  1. 支持多参数默认值,每个参数都可以有默认值。
  2. 如果要混用可选参数,必须写在普通参数后面。

函数重载

同一个函数名不同参数

结构体

与类的区别:C sharp 核心 > 结构体和类的区别

概念

用来表现存在关系的数据集合,比如用结构体表现学生 动物 人类等

一般写在namespace语句块中

结构体关键字struct

struct 自定义结构体名{ //变量 //构造函数 //函数 }
struct Student{ //结构体申明的变量不能够直接的进行初始化 //变量类型 可以写任意类型 包括结构体 但是不能时自己的结构体 //Student s; 报错,不能时自己的结构体 S s; //在结构体方法中,目前不需要加static关键字 void Speak(){ //函数中可以直接使用结构体内部申明的变量 Console.WriteLine(s); } }

访问修饰符

public (外部使用)
private(默认不写为private)

结构体的函数构造(构造函数)

  1. 没有返回值
  2. 函数名必须和结构体名相同
  3. 必须有参数
  4. 如果申明了构造函数,那么必须在其中对所有变量数据初始化
  5. 不允许自己申明无参构造函数
http://www.jsqmd.com/news/1144999/

相关文章:

  • 你要是想1天盘点完3000台设备资产——RFID资产管理系统可以!
  • 【LLM】qwen3.5-9b
  • 数学建模竞赛模型选择指南:5类算法在母婴数据预测问题中的性能对比
  • 这次终于选对了!盘点2026年普遍认可的AI论文平台
  • 新手小白还搞不懂Python?来这里我将用最直白,最简单,最好绷的语言一步一步教会你Python的下载,环境搭建以及多版本管理
  • 2026WAIC展品地图:大模型、国产算力、人形机器人……8 大类全在这
  • Selenium IDE使用指南三(控制流)
  • 想找优质靠谱公司?看看陕西GEO优化报价,给你满意之选!
  • Claude Code Sonnet 5模型Token成本优化与PR评审实战指南
  • 微信聊天记录删了怎么找回?全套官方恢复方法,无备份也有补救渠道
  • 2026年,揭秘苦荞米背后的专业匠心与健康秘密
  • 许可证管理智能化:AI技术如何赋能高效管理?
  • 简历审查Agent工程化收尾:模型坑位、线程安全、超时兜底与RAG预告
  • AGENT实例-智能体量化交易真相:告别算命,拥抱信息差
  • 4-1word文档的排版
  • 2026婚宴市场巨变:摩卡婚礼,凭什么被北京五星酒店集体选择?
  • 《用AI做公众号流量主》第1课:为什么是公众号流量主
  • 第五章第二节:循环结构(while/do-while/for)
  • OpenClaw龙虾ai Windows、macOS部署教程 内置运行环境一键安装流程
  • Python scikit-learn 1.4 实战:5种相似度算法在推荐系统中的性能对比
  • 有没有不泄露文稿、改写自然的AI论文降重?筛选标准是什么?
  • 医美仪器配件采购:兼顾性价比与量产稳定性选型思路
  • 儿童面部彩绘怎么选?从成分到效果的全方位指南
  • 【单片机毕业设计】基于 STM32/51 单片机的 8 路病床无线呼叫对讲系统设计,基于 NRF24L01 的病房智能呼叫与输液监测装置开发(020301)
  • 玩转Rust高级应用 怎么理解在标准库中,有一个std::intrinsics模块,它里面包含了一系列的编译器内置函数
  • 3分钟解决XGP存档迁移难题:Python脚本实现游戏进度无损转移
  • 复杂网络节点挖掘 3 类方法对比:中心性、影响力与社区结构,5 大指标实战解析
  • Windows和Office智能激活终极指南:5分钟完成永久激活
  • 沟通避坑指南,最经典的沟通类书籍推荐
  • 压缩与解压缩