栏目: C#

C# 在Emit代码中如何Await一个异步方法

0.首先立马解释一波为啥会有这样一篇伪标题的Demo随笔呢?不是本人有知识误区,或者要误人子弟因为大家都知道emit写出来的都是同步方法,不可能await,至少现在这么多年来没有提供对应的功能这是之前某天在微信群看见讨论怎么emit一个异步方法并包装异步结构,简单几句文字也未能清晰的表达所以趁着元旦...

2021-03-23 37 0 0 阅读全文

Unity置灰处理的实现

由于人眼对RGB敏刚程度不同,对绿色的敏感度最高,对红色的敏感度次之,对蓝色的敏感度最低,因此需要对RGB设置不同的权重,来达到灰度显示的效果,比较常用的RGB权重值为R:0.298912,G:0.586611,B:0.114478grayColor.rgb=float3(color.r0.2989...

2021-07-20 21 0 0 阅读全文

C# 如何更简单的使用Polly

Polly是一个C#实现的弹性瞬时错误处理库它可以帮助我们做一些容错模式处理,比如:超时与重试(TimeoutandRetry)熔断器(CircuitBreaker)舱壁隔离(BulkheadIsolation)回退(Fallback)使用也是非常简单的,比如://Retrymultipletime...

2021-03-23 27 0 0 阅读全文

C# 断点续传的实现

注意,本文所说的断点续传特指HTTP协议中的断点续传。本文主要聊聊思路和关键代码,更多细节请参考本文附带的demo。工作原理HTTP协议中定义了一些请求/响应头,通过组合使用这些头信息。我们可以在一次HTTP请求中只请求一个文件中的一部分数据。这样我们就可以把已经下载的数据存起来,下次只用请求剩余的...

2021-04-11 24 0 0 阅读全文

Unity自定义编辑器界面(Inspector界面)

在开发的过程中,往往会需要在组件中添加一些按钮,用于执行一些自定义的操作。例如你有一个组件A,里面有一个List,你想在这个List中存放当前Scene中所有的碰撞体数据。那么你会在组件A中写一个方法Find去遍历获取,一种情况你可以运行Unity的时候在Start方法中去执行Find方法,如果你想...

2021-04-28 38 0 0 阅读全文

C#异步的世界(下)

今天说异步的主要是指C#5的async\await异步。在此为了方便的表述,我们称async\await之前的异步为“旧异步”,async\await为“新异步”。新异步的使用只能说新异步的使用太简单(如果仅仅只是说使用)方法加上async修饰符,然后使用await关键字执行异步方法,即可。对就是如...

2021-04-26 28 0 0 阅读全文

C#调用Pyd的方法

1.安装pythonnetpythonnet是一个强大的工具包,用于C#代码与python代码进行交互,不仅可以实现在C#中调用python,也可以实现在python中调用C#.GitHub:https://github.com/pythonnet/pythonnet首先打开nuget包管理器:根据...

2021-04-09 28 0 0 阅读全文

C# IQueryable揭开表达式树的神秘面纱

什么是树?什么是树?这个问题好像有点白痴。树不就是树嘛。我们从最下面的主干开始往上看,主枝-分支-分支....可以说是无限分支下去。我们倒过来看就是这样:平时我们用得最多的树结构数据就是XML了,节点下面可以无限添加子节点。我们想想平时还用过什么树结构数据,比如:菜单无限分级、评论区的楼层。这和我们...

2021-04-26 37 0 0 阅读全文

C# 实现汉诺塔游戏

汉诺塔游戏一旦掌握了规律,其实是有点单调和无聊的,不过却是学习递归的一个绝佳例子,想当初学习老谭C的时候,就卡在这儿好长时间。对初学编程的人来说,递归本身就不易理解,如果使用C语言没有好的调试环境就更难去理解了。在这方面,VS调试输出是真方便,一目了然。但要想理解递归求解汉诺塔,还是得先玩一玩游戏本...

2021-04-09 26 0 0 阅读全文

C#怎样实现文件下载断点续传

老规矩,还是从最简单粗暴的开始。那么多简单算简单?多粗暴算粗暴?我告诉你可以不写一句代码,你信吗?直接把一个文件往IIS服务器上一扔,就支持下载。还TM么可以断点续传(IIS服务端默认支持)。在贴代码之前先来了解下什么是断点续传(这里说的是下载断点续传)?怎么实现的断点续传?断点续传就是下载了一半断...

2021-04-26 26 0 0 阅读全文

Unity实现场景跳转

本文实例为大家分享了unity实现场景跳转的具体代码,供大家参考,具体内容如下话不多说直接开始操作步骤。1.打开我们的unity创建一个工程,打开后我们先搭一个场景,建立一个Button,添加一个c#脚本.并保存场景为命名为01。结果如下2.在菜单栏中找到File按钮NewScene新建另一个场景创...

2021-04-23 56 0 0 阅读全文

ToLua框架下C#与Lua代码的互调操作

Lua是目前国内使用最多的热更语言,基于Lua的热更框架也非常多,最近学习了一下ToLua的热更框架,主要使用的问题在于C#和Lua之间的互调,因此做一下学习记录以备后查。所谓“互调”,当然要包括两个方面,一是通过C#调用Lua代码,二是通过Lua代码调用C#脚本,第二点还包括注册在C#脚本里的Un...

2021-04-09 22 0 0 阅读全文

C# 关于LoadLibrary的疑问详解

关于LoadLibrary的疑问Win32API中LoadLibrary函数的功能是加载某个库文件(通常是dll文件),然后返回HMODULE句柄,可以使用两个这个句柄来调用dll中的导出函数,一切似乎就这么简单。下面我们考虑深入一点,提出几个问题。使用ProcessExplorer可以看到进程所加...

2021-09-14 24 0 0 阅读全文

C# Assembly.Load案例详解

我们在使用C#语言的Assembly.Load来加载托管程序集并使用反射功能时,一般需要先通过Assembly.Load(),Assembly.LoadFrom()等方法将目标托管程序集加载到当前应用程序域中,然后生成对应实例,最后再进行调用实例的属性或者方法。一般情况下,我们调用Assembly....

2021-09-14 15 0 0 阅读全文

C#减少嵌套循环的两种方法

最近在解决性能优化的问题,看到了一堆嵌套循环,四五层级的循环真的有点过分了,在数据量成万,十万级别的时候,真的非常影响性能。当然,除了关注明显的循环例如for、foreach,还应该关注隐晦一点的循环,例如datatable.select(),linq之类的list.where、list.find等...

2021-06-21 29 0 0 阅读全文

C# TreeView从数据库绑定数据的示例

封装成一个函数,方便直接调用//绑定TrreViewprivatevoidInitModuleTree(DataTabledt){//清空treeview上所有节点this.tree_Role.Nodes.Clear();int[]gen=newint[dt.Rows.Count];//用于存储父节...

2021-03-23 35 0 0 阅读全文

Unity使用TexturePacker打包图集的操作方法

Unity打开UnityCtrl+9,打开Unity商店,下载TexturePackerImporter插件这个插件是用来解析图集文件的,是免费的TexturePacker打开TexturePacker,右侧是设置栏,一般基础设置就够用了选择Unity框架:设置界面右下角,会将文件最终算出的大小告诉...

2021-08-19 22 0 0 阅读全文

浅谈Unity脚本生命周期与执行顺序

在Unity中,脚本可以理解为附加在游戏对象上的用于定义游戏对象行为的指令代码。必须绑定在游戏对象上才能开始它的生命周期。游戏对象可以理解为能容纳各种组件的容器,游戏对象的所有组件一起决定了这个对象的行为和游戏中的表现。脚本生命周期Unity脚本中的常见必然事件如下表所示名称触发时机用途Awake脚...

2021-06-21 16 0 0 阅读全文

使用 BenChmarkDotNet 对 C# 代码进行基准测试

BenchmarkDotNet是一个轻量级,开源的,强大的.NET工具包,它可以将你的方法转化为基准并跟踪这些方法,最后对这些方法的性能提供一些测试报告,使用BenchmarkDotNet玩基准测试是非常容易的。你可以利用BenchmarkDotNet在.NETFramework和.NETCore应...

2021-03-23 34 0 0 阅读全文

C# DataTable与Model互转的示例代码

//////实体转换辅助类///publicclassModelConvertHelperwhereT:new(){//////List泛型转换DataTable.///publicDataTableListToDataTable(Listitems){vartb=newDataTable(type...

2021-04-11 22 0 0 阅读全文