C#四部曲(知识补充)
Unity跨平台原理
.Net相关
只要编写的时候遵循.NET的这些规则,就能在.NET平台下通用
各种源码→根据.NET规范编写→(虚拟机)生成CIL中间码(保存在程序集中)→转成操作系统原代码
跨语言← 跨平台↓
Unity跨平台原理(Mono)
c#脚本→MonoC#编译器→IL中间代码→monoRunTIme虚拟机→操作系统原生代码
Unity跨平台原理(IL2CPP)
跨平台总结
各种源码→根据.NET规范编写→(虚拟机)生成CIL中间码(保存在程序集中)→转成操作系统原代码
跨语言 ↑ 跨平台 ↓
(Mono)c#脚本→MonoC#编译器→IL中间代码→monoRunTIme虚拟机→操作系统原生代码
(IL2CPP)mono直接将中间代码转原生代码。IL2CPP先将中间码转C++,再转原生码
*IL2CPP模式可能存在的问题处理
新版本有一个minimal ,比low还要小。 最大测试程度,直接选Hight打包,看抱不报错
如果报错,再创建这个Link.xml 去配置 。配置规则,用到了再来查。上面是注释下面是方法
下面是没有被裁剪,但它本身是泛型的时
c虽然没有被使用,但它被存在这个类里。所以不会被剥离
二、
我想保留IL2类中的Test方法,只要在这个静态test中使用它一次。 test本身是永远不会被调用的
一个保留泛型类,一个保留泛型方法。
C#各版本新功能和语法
命名可选参数、动态类型
原来需要按顺序传参数,现在写出参数名字,后面跟: 就可以不按规则顺序来传参数
在这种有默认值的函数,甚至可以少些一些参数(前提是你就是要用它的默认值)
线程池
引入命名空间
复习:
记得关闭。数据不互通
此时停止Unity线程不会停止
这时停止运行,线程才会跟着停止。与主线程数据不互通
线程池:
获取可用的线程数。获取最大的、设置可以同时开启的线程数。比如只能同时开20个 返回一个bool
最大设为20后,第21个不会被创建,它只会等,等到有空位。
最小的也可以得到、设置
比如min10,max12. 我此时有11. 这时又排进来一个12,因为还没到达最大值,就会创建一个新的线程给12用。 再排进来一个13,因为已经超过MAx,所以不会再新创建,而是排队等空余。
从线程池里取出来一个线程用来执行该方法,也就是把方法加入线程池的排队队列
此时obj是空,如果加一个参数↓ 那么obj就会是这个参数
*Task任务类
这种方法直接就运行,不需要Start
无返回值↑ 有返回值 return↓
想返回什么类型,就填什么类型。其他方法类似
解决方法,主线程中获取Result返回值时停止循环。
异步执行↑ 同步执行↓ Task t =new Task t.RunSynchronously();
Task t =new Task (Action)
t.wait() Task.WaitAny(t1,t2) Task.WaitAll(t1,t2) & |
一个&条件,一个|条件
wait和when,一个群伤一个单体这么理解就好了
通过申明一个这个对象,用它里面的标识符替换用来的bool值(默认是false)
好处是里面有更多功能给我们用延迟取消
*异步方法Async、Await
Asunc其他地方还是同步执行,只有被Await修饰的地方才是异步
你写异步方法的时候就应该习惯用Async结尾 可以带参,可以有返回值,但有限制
1/正常输出123,2/TestAsync挂起 主线程继续执行 等待2结束 3/ 2中的Task执行结束,继续执行TestAsync中的3
线程间数据不互通,就像不同方法间参数不互通一样。
网络通信中也会用到这两个关键字
静态导入、异常筛选器、Nameof
静态导入
可以不再写类名
比如这里,只有当e这个错误当中的消息包含301时,才会执行后面的逻辑
可以用来给301、302、303等不同错误做区分
nameof使用场景其实比较少,可能配合异常捕获来告诉别人是那个位置(名字)出了错误
这种情况用tostring就不合适了
就可以用nameof
*_字面改进、弃元。out_
一看就知道是九亿
如果有类型不同的重载就不能用不确定的匿名
本地函数、ref+临时+返回值
此时test1也变成了900 赋值变为引用
结构体同理
如果要用函数,则也需要ref关键字,return也要加
也没必要写修饰符
*元组、模式匹配
还有很多自带异常类
允许加入自定义类型 元组是值类型
具体应用↓
弃元符号
模式匹配:
可以直接判断是不是这个值 可以判空 是int 则直接赋值进i
switch也可以存,判断条件更多
匿名用的比较少。只是把v存成和o一样的类型
静态本地函数、Using、Null赋值合并、Deconstruct
相当于本地函数不能使用上层函数

首先得保证using对象有Dispose这个方法
继承这个接口重写该方法,释放逻辑自己定
这种写法,只有在其上层函数结束时才会释放该对象
a = b?? "1"; a=b,b为空则a=1 a ??= "1"; a为空则=1
解构函数:
因为一个类对象实际是引用类型,直接赋值会造成地址上的关联。而解构函数可以只取出变量值

申明一个p,且单独把其中的变量值提取出来
模式匹配增强
判断这个对象的属性是不是这个值,那个属性是不是那个值↑ 结合使用↓
你要用传统的写也可以。
配合Switch,可以判断多个条件的满足情况。加分号。 元组则不需要数据结构类
可以连变量名都省略
when关键字可以配合switch使用,要同时满足多个条件,这里抛砖引玉
顶级语法
C#其他功能
时间戳
相关文章:

C#四部曲(知识补充)
Unity跨平台原理 .Net相关 只要编写的时候遵循.NET的这些规则,就能在.NET平台下通用 各种源码→根据.NET规范编写→(虚拟机)生成CIL中间码(保存在程序集中)→转成操作系统原代码 跨语言← 跨平台↓ Unity跨平台原理(Mono) c#脚本→MonoC#编…...
Vue中的数据交互有几种方式
1. 单向数据流: Vue中的数据流是单向的,从父组件传递到子组件。父组件可以通过props将数据传递给子组件,子组件通过props接收并使用这些数据。这种方式适用于父子组件之间的简单通信。 2. 事件: 子组件可以通过触发自定义事件来…...
2.MySQL中的数据类型
整数类型: tinyint(m): 1个字节 范围(-128~127) 常用:性别 0和1表示性别;状态 0和1表示 int(m): 4个字节 范围(-2147483648~2147483647) 常用:数值 数值类型中的长度m是值显示长度,只有字段指定zerofill时有用 例如…...
身份证查询真伪-三要素查验-ios身份证实名认证接口调用
身份证实名认证接口联网核验是实名认证的关键一步,通过翔云OCR识别出的身份证信息,联网上传全国人口数据库,通过比对查找,确认人口数据库是否有身份证号和姓名匹配的信息,如果有那就确认身份证是真的,如果没…...

@EnableWebMvc介绍和使用详细demo
EnableWebMvc是什么 EnableWebMvc 是 Spring MVC 中的一个注解,它用于启用 Spring MVC 框架的基本功能,以便你可以使用 Spring MVC 提供的特性来处理 Web 请求。 通常情况下,在基于 Spring Boot 的应用中,并不需要显式地使用 Ena…...

VC-旅游系统-213-(代码+说明)
转载地址: http://www.3q2008.com/soft/search.asp?keyword旅游系统 旅游信息管理系统开题报告 一、研究目的 旅游信息管理系统能帮助旅行社在游客的市场开拓、游客的信息管理、客户服务等方面进行综合处理。使旅行社能够准确的掌握客户的市场动态,充分了解对客户…...

重学SpringBoot3-ErrorMvcAutoConfiguration类
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-ErrorMvcAutoConfiguration类 ErrorMvcAutoConfiguration类的作用工作原理定制 ErrorMvcAutoConfiguration示例代码1. 添加自定义错误页面2.自定义错误控…...
剑指offer面试题34 丑数
考察点 空间换时间提效知识点 题目 分析 这里面其实用到了一点点的数学知识,丑数的定义是只包含2,3,5因子的数。现在要求第1500个丑数,最简单的办法就是从数字1开始遍历,依次判断每个数字是不是丑数,如果…...

C++ std::list的merge()使用与分析
看到《C标准库第2版》对list::merge()的相关介绍,令我有点迷糊,特意敲代码验了一下不同情况的调用结果。 《C标准库第2版》对list::merge()的相关介绍 list::merge()定义 merge()的作用就是将两个list合并在一起,函数有2个版本:…...
Quartz的分布式功能化设计
Quartz的分布式功能化设计 文章目录 Quartz的分布式功能化设计主体功能实现依赖API例子JOBJob记录表设计java具体代码DateDOOperatorDOSysQuartzJobDOPageDTOQuartzJobDTOQuartzJobPageDTOQuartzJobStatusEnumQuartzJobControllerIQuartzJobServiceQuartzJobServiceImplQuartzJ…...

Caffeine缓存
本地缓存基于本地环境的内存,访问速度非常快,对于一些变更频率低、实时性要求低的数据,可以放在本地缓存中,提升访问速度 使用本地缓存能够减少和Redis类的远程缓存间的数据交互,减少网络 I/O 开销,降低这…...
AI辅助研发正在成为造福人类的新生科技力量
目录 1.AI用于药物研发 (1)药物靶点预测: (2)药物分子设计: (3)药物筛选: (4)药效和安全性预测: (5)…...
程序分享--排序算法--归并排序
关注我,持续分享逻辑思维&管理思维; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导; 有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自…...
pg数据库和mysql区别
区别一 PostgreSQL (通常称为 PG) 和 MySQL 都是广泛使用的关系型数据库管理系统 (RDBMS)。虽然它们都是用于存储和管理数据的关系数据库,但它们在一些方面有很大的区别,如下所述: 数据类型:PostgreSQL 支持更多的数据类型&#…...

Jetpack Compose 动画正式开始学习
1. 简单值动画 //将一个Color简单值 从一个值 变化到另一个 另一个简单值 就用 animateColorAsStateval backgroundColor by animateColorAsState(if (tabPage TabPage.Home) Purple100 else Green300) 动画其实就是 一个状态不停发生改变导致 组件不断重组产生的过程 2.…...
iOS 17.4报错: libopencore-amrnb.a[arm64]
iOS 17.4报错: libopencore-amrnb.a[arm64] iOS 17.4 模拟器运行报错解决方案 iOS 17.4 模拟器运行报错 Building for ‘iOS-simulator’, but linking in object file (/XXX/lib/libopencore-amrnb.a[arm64]2) built for ‘iOS’ 解决方案 在Podfile里添加如下设…...

鼓楼夜市管理wpf+sqlserver
鼓楼夜市管理系统wpfsqlserver 下载地址:鼓楼夜市管理系统wpfsqlserver 说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于C#wpf架构和sql server数据库 功能模块: 登录注册 鼓楼夜市管理系统主界面所有店铺信…...

【五、接口自动化测试】5分钟掌握python + requests接口测试
你好啊!我是山茶,一个持续探索AI 测试的程序员! 在做接口测试时,在python中内置了HTTP库 urllib,可以用于发送http请求。基于urllib二次封装的三方库Requests,相较于urllib更佳简介易用。所以,…...
双边市场的基本理论
双边市场由两个不同类型的用户组成,通过一个中介机构或平台进行交易,其中一边用户的决策会影响另一边用户的结果。这种影响被称为间接网络外部性,它导致了平台在吸引和平衡两边用户时面临的挑战。 平台定价在双边市场中成为核心问题…...

R统计学2 - 数据分析入门问题21-40
往期R统计学文章: R统计学1 - 基础操作入门问题1-20 21. 如何对矩阵按行 (列) 作计算? 使用函数 apply() vec 1:20 # 转换为矩阵 mat matrix (vec , ncol4) # [,1] [,2] [,3] [,4] # [1,] 1 6 11 16 # [2,] 2 7 12 17 # [3,] …...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...