C#
主要是在unity中涉及的C#语法知识
Cloud Flower
二次元老贼、U3D游戏开发、NestJS学习中
展开
-
C#反编译工具:ILSpy
参考:反编译软件ILSpy的使用教程_TONY5388的博客-CSDN博客_ilspy.exe总结: 以前以为dnspy是反编译的,结果发现iLSpy是真的好用,可以选择生成不同C#版本的源码...原创 2022-03-30 14:09:33 · 2331 阅读 · 0 评论 -
DotNetZip知识系列:用来解压缩zip
说明:这是.net平台可以使用的一个库NuGet Gallery | Package Downloads for DotNetZip 这是官方文档About DotNetZip - DotNetZip Documentation原创 2022-03-25 17:44:31 · 517 阅读 · 0 评论 -
C#知识系列:成员赋值初始化和构造函数初始化的区别
参考:『C#』成员赋值初始化和构造函数初始化的区别? - 简书https://www.programminghunter.com/article/3929274109/C#对象初始化顺序 总结 总结:1、子类b静态变量初始化。2、子类b静态构造函数初始化。3、子类b非静态变量初始化。4、父类a静态变量初始化。5、父类a静态构造函数初始化。...原创 2021-11-30 21:32:56 · 366 阅读 · 0 评论 -
C#知识系列:delegate、event、EventHandler、Action、Func的区别
参考:C#知识点讲解之C#delegate、event、Action、EventHandler的使用和区别C# Action 和 Func 区别原创 2021-09-20 01:59:45 · 652 阅读 · 0 评论 -
C#知识系列:程序不包含适合于入口点的静态“Main”方法
参考:不包含适合于入口点的静态“Main”方法原创 2021-09-18 14:58:39 · 1742 阅读 · 0 评论 -
C#:Unity的Task是否多线程运行的问题
类似下列写法的async/await是在同一个线程中执行的public static async void LoadAsync()await LoadAsync()需要开启另一个线程处理必须如下显示编写: C#:使用Task.Run()ConfigureAwait() Unity特有的:...原创 2021-09-10 22:41:52 · 921 阅读 · 0 评论 -
C#:将byte array数据压缩和还原的方法
说明:压缩:public static string ToBase64String(byte[] inArray);还原:public static byte[] FromBase64String(string s);参考:https://docs.microsoft.com/zh-cn/dotnet/api/system.convert.frombase64...原创 2021-08-17 18:02:58 · 617 阅读 · 0 评论 -
C#与C++交互系列:C#调用C++的三种方式
参考: https://zhuanlan.zhihu.com/p/30746354内容: 目前.Net平台中托管环境调用非托管环境有三种方法:P/Invoke 针对原生c方法调用C++ Interop 针对托管C++(C++/CLI)使用的方法COM Interop 针对Window软件开发而采用的方式...原创 2020-11-02 15:49:30 · 597 阅读 · 0 评论 -
C#知识系列:paritial class必须是同一个程序集,否则引用别的程序集的paritial class会报错
C#知识系列:paritial class必须是同一个程序集,否则引用别的程序集的paritial class会报错,提示"A程序集的xxxx.cs与A程序集的xxxx.cs冲突,请使用A程序集的xxxx.cs"原创 2020-12-25 16:09:59 · 519 阅读 · 1 评论 -
C#知识系列:获取一个对象的内存地址
C#的对象类型分为两种:值类型与引用类型两种打印地址的方式不一样值类型:unsafe void PrintValueTypeObjectAddress(){ Vector2 v1 = new Vector2(); Vector2* pV1 = &v1; Debug.Log((int)pV1);} 引用类型: public static unsafe void PrintReferenceTypeObjectAddress(object o){.原创 2020-12-25 14:10:54 · 9518 阅读 · 4 评论 -
C#知识系列:GCHandleType的作用
总结: Normal:对象被标记为完全不被GC管理的状态,但会被GC移动内存位置,需要我们手动调用Free来释放对应的GC对象 Pinned:对象被标记为完全不被GC管理的状态,不被GC回收也不被GC移动内存地址,需要我们手动调用Free来释放对应的GC对象 Weak:如果对象被标记为“不可达”(没有被任何对象使用,需要清除的状态)时(但是其对象的内存还未真的被回收),Weak所指向的对象就会标记为null;不需要我们手动调用Free来释放对应的GC对象...原创 2020-12-24 14:05:15 · 2105 阅读 · 0 评论 -
C#知识系列:对于系统Class,目前只能扩展成员方法,无法扩展其静态方法及属性,未来有望支持
C#:对于系统Class,目前只能扩展成员方法,无法扩展其静态方法及属性,未来有望支持原创 2020-12-23 21:03:11 · 195 阅读 · 0 评论 -
C#知识点:特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式
说明: 例如我在使用Unity的MenuItem特性时,报了错"特性实参必须是特性形参类型的常量表达式、typeof 表达式或数组创建表达式" 经过几次定位,原因是因为我的字符串不是用const定义的,对于特性来说,实参必须是常量值,而我定义的是变量;另外加readonly声明也是没有用的,原因可以参见:C#知识系列:readonly与const的区别public static string Custom...原创 2020-12-23 13:52:43 · 5350 阅读 · 1 评论 -
C#知识系列:readonly与const的区别
参考: https://www.cnblogs.com/daidaibao/p/4214268.html https://www.cnblogs.com/tinya/p/4560864.html https://www.jb51.net/article/41796.htm总结:const 字段只能在该字段的声明中初始化。 readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly...原创 2020-12-23 11:31:52 · 323 阅读 · 0 评论 -
C#反编译工具:dnspy
不得不说,.NET Reflector太low了,对于迭代器的代码不能够很好的还原,get;set也不能好好的还原,名称也乱七八糟的 于是乎在外网论坛提及到dnspy很不错,支持泛型的语法糖,试了下,果真化腐朽为神奇,上面的问题都不复存在了 https://github.com/dnSpy/dnSpy/releases ...原创 2020-12-06 13:16:42 · 790 阅读 · 0 评论 -
C#反编译工具:.NET Reflector踩坑
参考: 最近涉及reflector中反编代码修改,在此积累经验https://blog.csdn.net/zhaochao888666/article/details/45619689 Reflector 出来的代码,怎么是这个样子? https://bbs.csdn.net/topics/390181710原创 2020-12-06 08:42:12 · 1094 阅读 · 0 评论 -
C#反编译工具:.NET Reflector基础使用
参考贴(自行阅读整合): C#反编译教程【Reflector】https://blog.csdn.net/penjie0418/article/details/7822773原创 2020-12-06 08:40:21 · 2862 阅读 · 0 评论 -
C#反编译工具:.NET Reflector导出代码
参考: https://www.cnblogs.com/huangkit/archive/2009/09/02/1558599.html原创 2020-12-06 08:35:26 · 1544 阅读 · 0 评论 -
C#Thread.sleep的几个问题
插眼参考: https://blog.csdn.net/luoyoub/article/details/80635678原创 2020-05-24 21:20:55 · 636 阅读 · 0 评论 -
C# try catch finally return
插眼参考: https://www.cnblogs.com/huangshuqiang/p/7850468.html原创 2020-05-24 20:01:32 · 863 阅读 · 0 评论 -
C#知识系列:nameof 运算符
插眼总结:获取变量名,避免因为变量名而声明字符串参考: https://www.cnblogs.com/lsgsanxiao/p/10977335.html原创 2020-05-18 13:24:54 · 1003 阅读 · 0 评论 -
C#this关键字的四种用法
插眼总结: this代表当前类的实例对象 用this串联构造函数 为原始类型扩展方法 索引器参考: https://blog.csdn.net/luming666/article/details/78316054原创 2020-05-14 13:31:02 · 659 阅读 · 0 评论 -
C#与lua闭包使用for循环时的不同点
我看过大多数csdn把c#和lua的闭包一概而谈,我在使用C#时,检测到C#的闭包和lua还是有些区别的。C#的闭包来一个例子(unity中使用):publicclassClosuerContent:MonoBehaviour{delegatevoidPrint();voidClosuerTest2(){Pri...原创 2020-03-15 23:01:57 · 501 阅读 · 0 评论 -
C#中 关于“引用类型保存在堆上,值类型保存在栈上”是不准确的
本文转载自:https://blog.csdn.net/nicepainkiller/article/details/78213694关于 堆栈 早期的理解是 内存的两块区域。 堆,速度快,比较小。栈,速度稍慢,但是空间比较大。在早期 关于 说道 值类型 和 引用类型的时候 经常说 :值类型一般是在 堆里面,而引用类型则在堆里面存放是的引用的地址,而真实的值是在栈里面...转载 2019-12-29 23:35:54 · 931 阅读 · 1 评论 -
c++ 中vector的count是unsigned int而C#中泛型的count为int
需要注意的,在使用一个返回值之前,要知道这个返回值是什么类型的,不要根据自己的臆断来写,否则c++很多bug不知道原因。。。十分注意,对比的时候,是自动转成unsigned int类型进行比较的 OrzC#中的泛型,用count都是int类型,所以不会出现类型不一样而导致的bug...原创 2019-11-21 22:08:16 · 362 阅读 · 0 评论