C#
文章平均质量分 55
西瓜的夏天啊
这个作者很懒,什么都没留下…
展开
-
Unity持久化数据之二进制
1、二进制定义就不赘述,直接说相对于Json、Xml 的好处Json、Xml好处是看着易懂,但是不好就是玩家可以找到存储信息,然后快速修改内容,另外因为xml和json是字符串,存取时候读写时的效率较低,内存和硬盘空间占用较大。Json、Xml 的坏处就是,不安全、效率低。所以二进制安全、效率高。...原创 2022-01-13 00:03:06 · 2249 阅读 · 0 评论 -
Unity数据持久化之Json
1、Json是什么JSON是一种取代XML的数据结构。和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。2、将对象转化成Json原对象:转成Json后3、Excel转化成Json这样写到excel中,然后复制excel中的内容到网站上,例如https://www.bejson.com/json/col2json/ 这个地方,直接就可以转成想要的Json文件,该方法比较笨,正确做法是应该有个自动化工具帮忙完成这一系列操作,日后编辑器开发在搞原创 2022-01-12 12:04:08 · 2593 阅读 · 0 评论 -
Unity数据持久化之PlayerPrefs,详细
本博客主要记录PlayerPrefs的使用,本文比较啰嗦,比较长1、什么是数据持久化数据持久化就是将内存中的数据模型转化为存储模型,以及将存储模型转化为内存中数据模型的通称简述:将游戏中的数据存储到硬盘,然后可以下次进游戏的时候读取硬盘中的数据到内存。...原创 2021-11-08 00:22:04 · 9222 阅读 · 2 评论 -
迭代器 ---------------C# 知识点9
系列文章目录文章目录系列文章目录前言一、迭代器是什么?二、实现方法总结前言一、迭代器是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。//迭代器(iterator)有时又称光标(cursor)//是程序设计的软件设计模式//迭代器模式提供一个方法顺序访问一个聚合对象中的各个元素//而又不暴露其内部的标识//在表现效果上看//是可以在容器对象(例如链表或数组)上遍历访问的接口//设计人员无需关心容器对象的内存分配的实现细节//可以用原创 2021-08-12 10:17:26 · 101 阅读 · 0 评论 -
线程、协程 的使用------------C#知识点7
using System;using System.Threading;namespace Lesson18_多线程{ class Program { static bool isRuning = true; static object obj = new object(); static void Main(string[] args) { Console.WriteLine("多线程");原创 2021-08-12 09:14:29 · 330 阅读 · 0 评论 -
特性 ----------------C#知识点8
特性//特性是一种允许我们向程序的程序集添加元数据的语言结构//它是用于保存程序结构信息的某种特殊类型的类//特性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等)相关联。//特性与程序实体关联后,即可在运行时使用反射查询特性信息//特性的目的是告诉编译器把程序结构的某组元数据嵌入程序集中//它可以放置在几乎所有的声明中(类、变量、函数等等申明)//说人话://特性本质是个类//我们可以利用特性类为元数据添加额外信息//比如一个类、成员变量、成员方法等等为他们添加更原创 2021-08-12 08:28:55 · 130 阅读 · 0 评论 -
进程、线程、协程、并发、并行、串行、unity的协程全程讲解------------知识点6
先了解一下并行和串行 和并发的概念注意:并发是对需求侧的描述,并行、串行才是对实现侧的描述,这两根本不是同一个范畴的东西,更不可能是互斥的关系。一定不要被同时段(并发)、同时刻(并行)那些老被拿出来一起比较的概念,弄混了本质并发是指同时有很多事要做,(10000个任务分给6个核心,肯定会出现并发现象),你可以串行处理也可以并行处理。并行是指同时做多件事。因此并发和并行是相关的,但是是不同的两个概念。并发:并发(同一时间段,而不是同时)(concurrent)指的是多个程序可以同时运行的现象,更原创 2021-08-08 00:20:38 · 3389 阅读 · 1 评论 -
协变和逆变out in 委托 ------------知识点5
什么是协变 out 和逆变 in首先将out in与 ref out这两个区分开来,ref out 是关于参数的引用传递的,协变:in和谐的变化,自然的变化因为 里氏替换原则 父类可以装子类所以 子类变父类比如 string 变成 object感受是和谐的逆变:out逆常规的变化,不正常的变化因为 里氏替换原则 父类可以装子类 但是子类不能装父类(但是为什么子类确实在逆变里装了父类)所以 父类变子类比如 object 变成 string感受是不和谐的也可以简单理解为,in代表进局原创 2021-07-29 00:59:28 · 232 阅读 · 0 评论 -
List的排序,自定义排序------------知识点4
List的排序1、系统自带的系统自带的变量(int,float,double…) 一般都可以直接Sort为什么呢,因为因为int等等直接就继承了IComparable接口,并实现了比较方法。但是遇到下面这种根据特性排序的就不能直接调用sort class Item : IComparable<Item> { public int money; public Item(int money) { thi原创 2021-07-28 00:40:00 · 167 阅读 · 0 评论 -
lambad表达式和闭包------知识点3
lambad表达式1.定义1.可以将lambad表达式 理解为匿名函数的简写它除了写法不同外使用上和匿名函数一模一样都是和委托或者事件 配合使用的using System;namespace Lesson15_lambad表达式{ class Program { static void Main(string[] args) { Console.WriteLine("lambad表达式");原创 2021-07-27 23:54:56 · 118 阅读 · 0 评论 -
匿名函数只能给委托用
匿名函数定义//顾名思义,就是没有名字的函数//匿名函数的使用主要是配合委托和事件进行使用//脱离委托和事件 是不会使用匿名函数的当用常规的委托调用方法时使代码很混乱或者不简洁的时候,可以使用匿名方法(内联代码块定义)。什么意思呢,我们用委托调用方法时,是根据方法名调用的,当需要待用的方法很多时,我们创建很多的方法,但是很多方法又不常用,现在我们可以用匿名方法代替。省去了自己定义一个方法的步骤using System;namespace Lesson14_匿名函数{ class原创 2021-07-26 00:57:55 · 144 阅读 · 0 评论 -
委托 和 事件
委托定义委托是存有对某个方法的引用的一种引用类型变量,本质是一个类,用来 存储、传递函数(方法)。可以将其 实例与 "格式"的方法 相关联。using System;namespace Lesson12_委托{ #region 知识点一 委托是什么 //委托是 函数(方法)的容器 //可以理解为 表示函数(方法)的变量类型 //用来 存储、传递函数(方法) //委托的本质是一个类,用来定义函数(方法)的类型(返回值和参数的类型) //不同的 函数原创 2021-07-25 16:14:47 · 125 阅读 · 0 评论 -
C# 多态 如何理解父类引用指向子类对象 里式转换原则
从对象的内存角度来理解试试.假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,它里面的变量需要占用0.5M内存.现在通过代码来看看内存的分配情况:Father f = new Father();//系统将分配1M内存.Son s = new Son();//系统将分配1.5M内存!因为子类中有一个隐藏的引用super会指向父类实例,所以在实例化子类之前会先实例化一个父类,也就是说会先执行父类的构造函数.由于s中包含了父类的实例,所以s可以调用父类的方法.Son s原创 2021-06-17 00:13:32 · 759 阅读 · 1 评论 -
C# 关于GC垃圾回收的过程
一、数据类型C#中的数据类型分为值类型 (Value type) 和引用类型(reference type),值 类 型: 所有的值类型都集成自 System.ValueType 上,除非加声明?否则不可为null,保存在 堆栈(Stack,先进后出)上,常见的值类型有:整形、浮点型、bool、枚举等。引用类型:所有的引用类型都继承自System.Object 上,引用类型保存在 托管堆(Head,先进先出)上,常见的类型有:数组、字符串、接口、委托、object等。拆箱和装箱:引用类型和原创 2021-06-14 16:44:27 · 1565 阅读 · 0 评论 -
C# ref和out的作用和区别
全写到代码里了作用1以往值类型当做形参都会被重新开辟栈空间重新赋值,加上ref和out后就会把值类型也是传递指针,而不是传递值本身using System;namespace Lesson8_ref和out{ class Program { #region 知识点一 学习ref和out的原因 //学习ref和out的原因 //它们可以解决 在函数内部改变外部传入的内容 里面变了 外面也要变 static void原创 2021-06-14 10:29:59 · 261 阅读 · 0 评论 -
C#的虚方法、静态方法、实例方法、抽象方法、拓展方法
1、虚方法首选虚方法就是加上一个标记,virtual,它的作用就是可以被子类进行重写。这个虚方法必须要有自己的方法体,它的子类并不一定要去重写它,根据需求定例子:另外有几个系统自带的虚方法EqualsGetHashCodeHaveToString关于Equals()虚方法1,对于字符串和值类型能够自动比较是否相等。Equals()默认支持的是‘引用’相等 也就是比较俩个对象的‘地址’,而非对象本身,如果是值类型的数据,则可以直接比较结果。2,对于对象比较必须重原创 2021-06-06 18:20:03 · 1497 阅读 · 1 评论 -
C#装箱和拆箱
概念装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。装箱在值类型向引用类型转换时发生拆箱在引用类型向值类型转换时发生我们先看装箱时都会发生什么事情,下面是一行最简单的装箱代码object obj = 1;这行语句将整型常量1赋给object类型的变量obj; 众所周知常量1是值类型,值类型是要放在栈上的,而object是引用类型,它需要放在堆上;要把值类型放在堆上就需要执行一次装箱操作。请看下面的C#代码:object objValue = 4;int value = (int转载 2021-05-16 21:43:01 · 540 阅读 · 0 评论 -
C#值类型、引用类型(堆和栈)---知识点10
栈和堆(栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放)概念值类型直接存储其值,而引用类型存储对其值的引用值类型派生自 System.ValueType,System.ValueType又派生自System.Objcet引用类型派生自 System.Objcet值类型:byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。(decimal 关键字指示 128 位数据类型。 与浮点型相比,decim原创 2021-05-16 21:02:09 · 496 阅读 · 1 评论 -
C#中的反射到底用在哪,通俗解释(unity)、反射的概念及用法-- C#知识点6
看了这么多资源,看了这么多例子,还是没看明白。今天突然想通了,默认你先知道反射是这么用的,但是不明白反射到底用在什么场景,既然知道了对象,为啥不用对象直接开new,还要通过反射绕这么一大圈?例子1反射可以用来开发程序插件一类的,比如浏览器支持插件吧,浏览器添加插件后,为什么可以执行插件里的代码,毕竟程序是浏览器在执行,我却跑通了插件的功能,这就用到了反射,我通过反射可以检测到插件中有哪些字段、有哪些方法、和其他的,例如,浏览器开发者跟插件开发者约定好,想执行插件的A功能我这边会调用funA()的方法原创 2021-02-20 11:43:19 · 4491 阅读 · 2 评论