C#
文章平均质量分 73
ZRunners
这个作者很懒,什么都没留下…
展开
-
委托 事件 协变 逆变
一个匿名函数:传入一个数据,调用这个函数时可以通过再传入一个数据实现两个数据的交互 System.Action<int> DoPlus(int a) { return delegate (int b) { print(a + b); }; } System.Func<int, int> DoPlus2(int a) { return delegate (int b) {...原创 2021-01-25 18:13:04 · 229 阅读 · 0 评论 -
C#获取一个数组的类型
假如我有一个Vector3类型的数组:Vector3 [] array;在获取数组的子数组的时候,用多种方式:用Linq的Skip方法,但是才Unity仿真中,如果大量使用linq语句,有可能造成性能上的损耗用Array.Copy方法,它有多种重载的方法,我使用其中一种[ReliabilityContract(Consistency.MayCorruptInstance, Cer...原创 2019-07-16 12:22:49 · 2963 阅读 · 1 评论 -
尝试写入读取一堆有序的数据到二进制文件
测试用Dictionary类型文件,同样用一个结构体的类型的数据结构也可以,只要文件中数据是有序的,则可以循环读写文件。可读写的类型和方法 public virtual void Close(); public virtual void Flush(); public virtual long Seek(int offset, Seek原创 2017-12-14 09:23:07 · 331 阅读 · 0 评论 -
关于C#字符串按照小括号拆分报错问题
字符串按字符拆分直接用string.Split('str')即可。但是按照小括号拆分时,报解析错。解决方法如下:(这个案例可按照字符串拆分)string str = "(dasdfaowe],{}(fhweo],fdf";string[] sA = System.Text.RegularExpressions.Regex.Split(str, "\\(", System.Text.原创 2017-11-24 17:41:14 · 1143 阅读 · 0 评论 -
C#动态确定数组个数,以及IList无法创建抽象类或接口错误
数组(int[],string[]等)在声明时就要确定一个长度,如果我们想动态修改这个长度,是不可以的,所以可以这样操作:定义个动态数组ArrayList,在这里面添加内容ArrayList list = new ArrayList();...//这里添加元素到数组中object[] ObjArray = (object[])list.ToArray(typeof(object))原创 2017-06-21 10:51:43 · 1186 阅读 · 0 评论 -
Unity在Dictionary中删除修改元素时出现InvalidOperationException: out of sync
用foreach来处理字典时出现这种错误,经调试,错误出现在我迭代时就用Remove删除这个元素,它和List一样,不能用foreach来删除元素,所以我们需要另想办法来删除,解决办法:定义一个数组或列表记录要删除的元素的key,然后在这个foreach之后通过遍历数组列表中的元素来删除Dictionary中的对应元素原创 2016-12-19 10:19:10 · 4220 阅读 · 0 评论 -
Unity中,用Delegate的一个问题
今天遇到一个问题:foreach(var items in List){ btn.onClick.AddListener(delegate() { this.OnBtnClick(items); });}这个问题,所有的按钮最后都是添加的是最后一个列表元素。原因可能是,每次都修改了items的值,如果重新定义一个变量赋值items,这种问题就消失了。不知道是不原创 2016-11-21 11:50:29 · 1380 阅读 · 1 评论 -
用Unity时,C#中List删除元素时出错
用Unity时,遍历添加到链中的AudioSource组件对象,如果播放停止,就删除它。(为对象添加这个组件时就记录下组件信息,保存在链表中)。练习C#中链表,foreach 遍历链表,操作出现这个错误:InvalidOperationException: Collection was modified; enumeration operation may not execute.for...原创 2016-08-04 16:15:34 · 6807 阅读 · 1 评论 -
c#删除字符串中指定字符
string str= System.Text.RegularExpressions.Regex.Replace(字符串, "[指定的字符]", "");如删除一个字符串text中所有的\t\r\n:string result = System.Text.RegularExpressions.Regex.Replace(text, "[\r\n\t]", "");原创 2016-04-22 17:04:53 · 35970 阅读 · 0 评论 -
C#中对应C++ STL
转自:http://blog.csdn.net/niewq/article/details/5374161DotNet下的泛型容器类封装在System.Collections.Generic,使用的十分广泛。C++则靠STL实现了泛型容器与算法。下面对二者做一个对比,只谈用法,不深究原理。对比的内容有数组、链表和字典三种结构。一、数组C#使用List,C++用的是std::ve转载 2016-04-22 17:00:44 · 5434 阅读 · 0 评论