![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c#
KindSuper_liu
沉下心来,踏踏实实做技术。
展开
-
c#迭代器及协程的本质
IEnumerator这是一个接口,主要为了实现能够循环遍历,在子类中具体实现。包括以下几个方法:public interface IEnumerator{ //移动到下一个 bool MoveNext(); //返回当前 object Current { get; } //重置 void Reset();}IEnumerable这个接口很简单,就是定义了一个方法返回一个IEnumerator public interface IEnumerable {原创 2022-05-01 19:27:13 · 449 阅读 · 0 评论 -
Unity(C#) 在List集合中根据概率取出一个值
在List里面随机取一个值很简单,只要生成一个随机数在0到List的数量区间,然后取这个下标的值就行了。但是如果List里面的每个值都有一个取值概率,那该怎么得到呢? /// <summary> /// 从指定的概率池中随机挑选一个概率值,并将其索引返回 /// </summary> /// <param name="probabilities">概率池</param> /// <ret原创 2022-01-12 11:24:23 · 3580 阅读 · 3 评论 -
c# 时间戳和DateTime相互转换
时间戳不含时区的概念Unix时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。DateTime2021-05-26 23:59:00 北京时间包含时区的概念,涉及到时间戳和时间的转换,就会有时区的问题。DateTimeKind.Utc //协调时间DateTimeKind.Local //本地时间TimeZone.CurrentTimeZone //获取当前计算机的时区格式化输出:t.ToString(原创 2021-08-31 20:07:02 · 1990 阅读 · 0 评论 -
c#堆和栈的区别
栈:全称是线程堆栈,英文 Stack堆:全称是托管堆,英文Heap解释1栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小栈由系统分配内存大小堆由程序员自己申请解释2存放在栈中时要管存储顺序,保持着先进后出的原则,它是一片连续的内存域,由系统自动分配和维护。而堆是无序的,它是一片不连续的内存域由有用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(原创 2021-08-31 19:16:18 · 1731 阅读 · 2 评论 -
C#函数中{get;set;}
在面向对象编程(OOP)中,是不允许外界直接对类的成员变量直接访问的,既然不能访问,那定义这些成员变量还有什么意义呢?所以C#中就要用set和get方法来访问私有成员变量,它们相当于外界访问对象的一个通道,一个“接口”。先来看一段代码:class Employee { private string name; private byte age; ...原创 2019-01-17 16:54:02 · 8870 阅读 · 0 评论 -
c# Array、List等数据结构对比
Array数组特点数组存储在连续的内存上。数组存储的都是相同类型的东西。数组可以通过下标访问。速度由于是在连续内存上存储,所以它的索引速度非常快。查询快。但是由于是连续存储,在两个元素中插入慢。声明一个新的数组时候,必须指定其长度,当声明的长度过长,就会浪费内存;过短则面临溢出的风险。ArrayList则解决了这个问题。ArrayList数组不必声明长度,动态增长和缩减。...原创 2019-10-28 10:04:40 · 986 阅读 · 0 评论