C#语法
文章平均质量分 64
小黄跑跑跑
这个作者很懒,什么都没留下…
展开
-
学习笔记_C#基础
浅墨知乎阅读笔记——12.20P1命令模式是回调机制的面向对象版本。帧同步中Presentation可以通过接口来实现,也能通过类型加回调来实现。Input->Serialize->Network->Deserlize->Application最基本的处理输入的写法 if(Input.GetKeyDown(KeyCode.A)) DoSomething();这种写法的耦合比较重,且不太好处理联机的情况。如果改成if (Input.GetKeyDown(KeyCode.A))原创 2021-12-21 13:53:37 · 142 阅读 · 0 评论 -
unity使用Attribute实现限制资源类型
Attribute代码[AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]public class ResourceTypeAttribute : Attribute{ public ResourceTypeAttribute(Type type) { ResourceType = type; } public Type ResourceType;}Inspector代码v原创 2021-05-31 16:21:21 · 286 阅读 · 2 评论 -
C# string internPool
C#编译时会将string存储到PE metaData中,在程序运行时,将PE metaData载入到internPool中,并将这些字符串索引到internPool中的内存。string s = “Hello World”;string t = “Hello” + “World”;string g = new string(new char[11]{‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ’ ', ‘W’, ‘o’, ‘r’, ‘l’, ‘d’});string k = new stri原创 2021-05-31 15:48:54 · 250 阅读 · 0 评论 -
Index from end operator ^和Range operator ..
看.NET文档发现两个有意思的语法,一个是反向索引操作符还有一个是范围操作符(个人翻译)。1:Index from end operator ^Available in C# 8.0 and later, the ^ operator indicates the element position from the end of a sequence. For a sequence of length length, ^n points to the element with offset length原创 2021-05-17 15:10:59 · 214 阅读 · 0 评论 -
C#的Dictionary实现原理分析
1:实现中的参数//哈希映射后首个元素在entries中的Indexint[] buckets;//存储Key,Value的数组,C#的dictionary是用数组来组织数据的Dictionary<TKey, TValue>.Entry[] entries;private struct Entry{public int hashCode;public int next;public TKey key;public TValue value;}//当前数据的数量int c原创 2021-01-15 18:17:36 · 1763 阅读 · 0 评论 -
C# Tuple(元组类) vs ValueTuple(值元组)
转载一篇比较详细的描述元组的文章。https://www.cnblogs.com/lavender000/p/6916157.htmlTuple是元组类,引用类型,多返回值可以这么用。static Tuple<string, int, uint> GetStudentInfo(string name){return new Tuple<string, int, uint>(“Bob”, 28, 175);}ValueTuple是值元组,值类型,多返回值可以这么用。st原创 2020-08-04 16:19:41 · 196 阅读 · 0 评论 -
AutoResetEvent 和 ManualResetEvent的使用和区别
参考文档:https://docs.microsoft.com/en-us/dotnet/api/system.threading.autoresetevent?view=netcore-3.1https://docs.microsoft.com/en-us/dotnet/api/system.threading.manualresetevent?view=netcore-3.1https://www.cnblogs.com/chenwolong/p/AutoResetEvent.html解析:.原创 2020-08-03 11:50:42 · 299 阅读 · 0 评论 -
.Net多线程初步了解
最近花时间了解了下.NetFramework的多线程,看了一个基础教程https://www.bilibili.com/s/video/BV1TJ411v7T7教程中对多线程的概念做了基础讲解,并且也有提到.NetFramework的多线程发展,如果对多线程不是很了解或者说想全面了解这块知识的也可以去看一下,内容相对简单。* 下面对我看这个视频的收获做一个总结。* 概念:线程是进程的一个实体,是CPU调度和分配的基本单位,它比进程更下能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在原创 2020-07-30 16:17:25 · 333 阅读 · 0 评论 -
C# GetType() 和 typeof 的区别
原文链接:https://blog.csdn.net/letianok/article/details/7257117GetType和typeof()都能获得数据类型System.Type.1:GetType()方法继承自Object,因此C#中任何对象都具有GetType()方法,t.GetType(),其中t为变量名。2:typeof是操作符,typeof(t)的t必须是具体的类型名称,不可以是变量名称。比如有这样一个变量i:string str = new string();使用GetTy原创 2020-05-14 11:43:11 · 344 阅读 · 0 评论 -
C# IEnumerable IEnumerator yield
先来看IEnumerable,接口只有一个函数GetEnumerator(). public interface IEnumerable { IEnumerator GetEnumerator(); }再来看IEnumerator,有moveNext()和Reset()函数,还有只读的current. public interface IEnumerator { ...原创 2020-04-27 15:19:31 · 221 阅读 · 0 评论 -
C# 类似于C++ Const的语法。
一直在想C#为什么没有类似于C++的const语法,对函数参数,函数返回值,以及对函数内容进行限制。记录下自己的发现。在C#中,数据类型分为值类型和引用类型。传递类型分为按值传递和按引用传递。对于函数参数和返回值其实C#是能进行限制的。对于函数参数有关键字in。public class Test{ public int Num; public Test(int val) ...原创 2020-04-24 20:07:21 · 577 阅读 · 0 评论 -
C#方法参数关键字 params in ref out 四种类型传递方式
申明方法参数时可以使用的关键字:params:指定该参数采用可变数量的参数。in:指定此参数由引用调用,但是只由调用方法读取。ref:指定该参数为引用传递,可能由调用方法读取或写入。out:指定此参数为引用传递,由调用方法写入。1. params:使用params关键字可以指定采用数目可变的参数可以发送参数申明中指定类型的逗号分隔的参数列表或者指定类型的参数数组,也可以不发送参数,那...原创 2020-04-23 20:05:22 · 1027 阅读 · 0 评论 -
C#特殊字符 逐字符字符串@ 字符串内插$
1:概述特殊字符是预定义的上下文字符,用于修改最前面插入了此类字符的程序元素(文本字符串、标识符或属性名称)。 C# 支持以下特殊字符:@:逐字字符串标识符字符。$:内插的字符串字符。2:逐字字符串标识符字符 @作用1:加在C#关键字前面用作标识符。int @for = 1; print(@for);作用二:指示将原义解释字符串。string filename1 = @“c:\do...原创 2020-04-22 18:11:16 · 1183 阅读 · 0 评论 -
C# 函数多个返回值 解决办法
编程中经常遇到有多个返回值的情况,下面提供了几种方法供参考。方法一:GetPerson(out var Name, out var Age, out var Male);Debug.Log(Name + " " + Age + " " + Male);public void GetPerson(out string name, out int age, out bool male){...原创 2020-04-20 17:36:41 · 3262 阅读 · 0 评论 -
C# 强引用和弱引用的区别 弱引用的使用
什么是强引用?Object obj = new Object(); 这就是一个强引用,内存分配一份空间用以存储Object数据。当一个对象被强引用的形式创建的时候,本身引用的次数为1.接着Object o = obj.执行之后Object的引用次数为2.所以强引用会导致被引用的对象的引用次数加1.什么是弱引用?弱引用可以保持该对象的引用,但是不增加对象的引用次数。这样GC就能在必要时候释放...原创 2020-04-19 22:07:49 · 794 阅读 · 0 评论