- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 抽象工厂模式与工厂方法模式代码结构的区别
工厂方法模式相当于是生产线的小作坊,比如有四个小作坊,一个产A手机、一个产A电脑,一个产B手机、一个产B电脑;抽象工厂模式相当于来了2个厂长,把个小作坊给收购了,A厂子里面有手机和电脑两条生产线,B厂子里也有两条对应的生产线。..................
2022-08-05 15:56:53 281
原创 Unity中使用JsonUtility解析json字符串解析不出来
JsonUtility.FromJson< T > 时,发现解析出来的对象字段都是null或者默认值,并没有将json里的内容解析出来
2022-01-25 16:02:15 3583
原创 unity打开项目后错误
Socket: unable to join multicast group, error: 提供了一个无效的参数。Unable to join player connection multicast group.Socket: unable to join multicast group, error: 提供了一个无效的参数。Unable to join player connection alternative multicast group
2022-01-12 14:06:53 6292
原创 unity获取某个物体上脚本定义的属性
也不知道看标题能不能看明白,我先解释一下,大家看看如果不是想要看的就可以撤了。比如(可能不太恰当),一辆货车挂两个脚本,一个脚本是移动脚本,一个脚本是翻斗脚本,移动脚本里定义了一个车里有没有箱子的属性,接收外部数据,对这个属性赋值翻斗脚本要获取移动脚本里这个有没有箱子的属性,要是有箱子就翻斗,保证自己倔强的车斗啥也不拉。也就是说一个脚本要获取物体上某一个脚本里面的属性其实挺简单的:在移动脚本里面定义个公共变量,例如[HideInInspector] public bool HasBox;
2021-10-25 16:26:39 4899
原创 unity3d实现子物体相对父物体移动
子物体相对父物体移动前言:我是个c#开发,有个3d的项目,需要我给写脚本,我这也是边学边写,作为一个新手,在百度过程中,找不到结果的,最终解决的,记录下子,也是给自己做个笔记,也是算是给新手一点帮助,先写一个子物体相对父物体的移动吧,其实很简单.相对运动用的是transform的localPosition属性,熟悉的人已经走了,哈哈transform的position是世界坐标系的位置,localPosition是自身坐标系的位置,子物体的自身坐标系是 以父物体为原点定义的,so,想要子物体相对父物体
2021-10-25 15:41:56 6684 2
原创 基类只执行一次的构造函数
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-09-02 14:06:36 789
原创 winform chart 定义了x轴字不显示,显示0
在用winform的chart控件做饼图的时候发下了一个很奇怪的问题,使用异步去刷新图表,不好用,这个也没找到原因,只能是推荐用个while 里面有个await进行等待,不会卡界面,或者用Form.Timer这个控件,这个是主线程调用的绑定了要显示的字,结果不显示字,显示0:chart_area.Series[0].Points.DataBindXY(new List() { “空闲”, “” }, new List() { rate, 1 - rate });显示结果:之前还好用的,一段时间
2021-07-26 09:20:57 1622
原创 判断两个List集合是否相等
List集合分两种,一种内部item是引用类型List< Student> 这种的,一种是内部item是值类型List< string >、 List< int> 这种的(string在c#里面是特殊的引用类型,可以看做是值类型)判断相等的情况分下面几种:第一种,内部item都是相等的(1)List< Student>这种for (int i = 0; i < 5; i++){var model = new Student { Name =
2021-07-16 18:16:35 2750
原创 short类型转二进制字符串(负数)
short类型转二进制字符串short类型转二进制字符串在c#里面有现成的方法,Convert.ToString(short,2);例如 10转成二进制字符串是1010这里主要说明一下负数转二进制:例如-10转二进制 1111111111110110 这玩意是对的么?起初也很怀疑,又用Convert.ToInt16(“1111111111110110”,2)转了一下,还真是-10查了一下,原来负数的二进制是采用补码的形式来存储的补码:首先是10的二进制进行取反10的二进制是0000
2021-07-08 14:27:37 4398
原创 asp.net core的过滤器与缓存之间的冲突
问题:web api 写了一个鉴权过滤器,考虑到访问量又给接口加了个缓存,但是出现问题了:用户的请求就算通不过鉴权机制也能访问接口的缓存数据,导致了只有缓存过期后才能验证用户是否有权限,很尴尬。原因:这跟Startup类里面添加中间件的先后顺序有关,缓存是在mvc(controller)前面,但是过滤器是在mvc(controller)里面增加的,也就是用户的请求会先经过缓存,再经过过滤器,也就是鉴权过滤器控制不住用户访问缓存的原因了,只有缓存过期了,用户请求才能再通过到controller这里,才能
2021-04-27 10:31:37 196
原创 asp.net core 自定义中间件
asp.net core 自定义中间件自定义中间件比较简单,分两步,构造函数与执行函数首先中间件内部需要定义一个 RequestDelegate 的属性,表示下一个要执行的中间件;构造函数里面需要有一个RequestDelegate 参数,接收下一个中间件,另外需要其他注入的服务自己可以随意加要有一个Invoke方法,用于执行,返回值需要是Task,参数需要HttpContext比如一个权限中间件 定义:首先定义构造函数://下一个要执行的中间件 private RequestDelega
2021-04-27 10:27:32 616
原创 在类库中引用Oracle.ManagedDataAccess的nuget
前提:一个解决方案中可能存在多个项目,我习惯将实体与数据库连接层都放在一个单独的项目中,这样方便给其他的项目使用,之前都是用的msql,并没有出现问题,现在用到了oracle,出现了问题,但是已经解决。问题:在项目(非启动项目)中引用后,报 "需要引用ManagedDataAccess.dll 未安装或者版本冲突"异常无法读取config文件中配置的connectionstring解决了1问题后,报 “连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确”问题根源:程序启动后,只
2021-04-22 13:57:55 881
原创 asp.net core2.2使用IIS启动时,swagger访问404
最近出现了一个很奇葩的问题,也不知道是怎么产生的,莫名其妙的,不过最终还是解决了,记录一下问题 写了一个asp.net core webapi,使用的swagger方便调试接口,最近更改过一些东西后发现无法访问了/swagger 是404然后修改了swagger的RoutePrefix后,可以访问,但是找不到json文件解决a. 尝试着把修改的东西都还原了一下,依然404b. 百度了一下 ,不太好用c. 使用控制台启动可以访问swagger(从这确定是IIS的问题)d. 找个最笨的办法,
2021-03-04 11:20:27 1276 1
原创 datagridview异常system.argumentoutofrangeexception arg_paramname_name
点击datagridview表头时报异常system.argumentoutofrangeexception 索引值不能为负数arg_paramname_name啥的datagridview内容是从0开始的,表头的索引是-1然后实现了datagridview的CellClick事件,并在事件private void Dgv_todo_CellClick(object sender, DataGridViewCellEventArgs e)里用到了e.RowIndex 所以才引起的报错在事件里加个判断
2021-01-28 10:24:19 966
原创 16进制float与十进制float相互转化
/// <summary>/// float 10进制转16进制/// </summary>/// <param name="f"></param>/// <returns></returns>public string Float_TenToHex(float f){ var bytes = BitConverter.GetBytes(f); return BitConverter.ToString(byt
2021-01-27 16:06:29 2726
原创 反射异常参数计数不匹配
参数计数不匹配,网上好多都是调用invoke报错了,我这在反射的时候也报错了,记录一下。在反射的时候,经常会用到反射泛型,例如有个经历 记录一下调用http接口的日志,这里用到了泛型,反射一下参数,代码如下:private static string convertToUrl<T>(T t){ string url = ""; Type type = t.GetType(); var props = type.GetProperties(); foreach (
2021-01-27 10:56:52 1830
原创 object对象的反射
有个朋友(不要问我这个朋友是谁,反正是一个朋友 [手动狗头])在用泛型的时候,传入一个object类型,发现并没有反射出内部属性,说一下原因。1. 首先需要知道:object是一个类,但是他内部是没有属性的想要反射出他的属性,说明是将其他类装箱成了object,例如:object a = new Student{Age=10,Name=“Xiaoming”} 将student类装箱成object或者object b= new {Age=10,Name=“Xiaoming”} 将
2021-01-27 09:53:43 1147
原创 在lock中同步使用Task
lock中是不允许使用await方法的,在语法上通不过的。但是如果需要在lock中调用async方法怎么办?需要同步调用async方法如果不需要返回值,可以用wait()方法 如果需要返回值可以用Result。例如 有个方法:public async int Add(int a,int b){await Task.Delay(1000);return a+b;}一、如果在lock中使用的话,先说正确的var re = Task.Run(()=>Add(1,2)).Result;
2021-01-26 11:32:21 893 1
原创 c# winform调用POS热敏打印机打印小票
打印机是pos80,pos打印机走windows标准协议,使用winform中的打印控件就可以。此示例根据打印内容自动调整打印的长度实现打印。打印有异常请看最后的注意事项。安装打印机驱动,设置打印属性打印设置打印触发的事件/// <summary>/// 定义每行高度,定位打印point用,设置比Font的大小要大一点,留出行间距 单位百分之一英寸 1英寸=25.4mm/// </summary>int fontHeight = 20;/// <sum
2020-12-03 14:30:38 2760
原创 无法加载baidufaceapi.dll 找不到指定模块
最近有个c#项目用到了百度的人脸识别,有几个比较坑的地方,写一下解决方式问题1.无法加载baidufaceapi.dll 找不到指定模块环境:在我本机是可以调用的,然后我部署到机器上后,就出现这个问题了。解决过程:1.一般无法加载某个dll,找不到指定模块这个问题是缺少dll的问题,我把baidufaceapi.dll 拷贝到debug和system32下面了还是不行,感觉是baidufaceapi.dll引用的某个dll缺失。2. 用dependcywalker( 下载地址) 查了一下baidu
2020-11-30 15:24:55 2072
原创 正则表达式入门
文章目录前言一、开始干1.字符匹配2.任意匹配 .3.单字符的或 [和]4.区间5.简写\d 表示[0-9] 是数字的简写\D 表示非[0-9],其他所有\w 表示a-z、A-Z、_、0-9、汉字5种,表示的很广\W 表示非\w,就一些特殊字符,像一些标点\s表示一些空白,像空格,tab6. 运算符^取非+ 表示1次或多次*表示0次或多次?表示0次或1次精确到数量{count}、{minCount,maxCount}、{minCount,}贪婪型与懒惰性位置表示(1)全字匹配 \b \B(2)字符串的开头结
2020-11-18 17:52:11 469
原创 vs2019 断点无效,无法在xx位置设置断点 公共语言运行时无法设置断点
最近打开了之前的项目,调试时打断点发现在await的地方打不上断点,会报“断点无效,无法在xx位置设置断点”,搜了一下攻略大家说需要在工具–选项–调试 里面打钩“使用托管兼容模式”;弄完之后再打断点发现还是不行,会报“公共语言运行时无法设置断点”,总之意思好像是调试的代码和生成的不太一样了,清理,重新生成了多次还是不行。突然想到,是不是vs把代码给优化了,查看了一下项目属性,果然,“优化代码”被打钩了。去掉勾后,可以打断点了 巴适。...
2020-10-31 09:01:45 4932
原创 winform弹窗显示在另一显示器三要素
多显示器时,winform中需要form现在在另一个显示器中需要满足三个要素form的windowState是normal设置form的top,left以及sizevar scream = Screen.AllScreens[1].Bounds;//left,top 左边上边的位置,就是通过这个定位到另一个显示器this.Left = scream.X;this.Top = scream.Y;//form的大小,这里是全屏this.Size = new System.Drawing.Si
2020-08-19 17:41:34 464
原创 等待登录加载窗口
登录窗口前的加载窗口展示在登录窗口展示之前,先弹出个正在加载的窗口,等待登录窗口初始化完了后,加载窗口关闭,登录窗口show出来,主要是用于登录方式比较多,加载设备比较慢的情况。效果如下(忽略我的桌面)首先做一个加载Form,看个人喜好了,我用的是cskin的皮肤包,里面控件挺多的,感觉还挺好的,在nuget下载就可以新建个form,Controlbox设置为false,formborderstyle设置为none,transparencykey设置个颜色,我这设置的是control颜色拖个s
2020-08-13 21:15:17 898
原创 winform使用ShowDialog后,调用异步线程(async)等待(await)时,还未执行完毕,form就关了
ShowDialog后,调用异步,await还未等异步线程执行完毕,弹窗关闭了问题描述: ShowDialog弹出了一个Form,然后在form中有点击button执行一个异步调用接口查询操作,等待查询结束后再做其他判断,结果异步还未执行完毕,form就执行了dispose关闭了。原因:最终确定原因是在调用异步前面设置了DialogResult的值。当设置了DialogResult的值后,窗体将自动关闭,该逻辑在底层默认执行。此时,用await等待异步执行时,并没有占用主线程,然后窗体就关了。解决办法
2020-07-30 14:45:35 2107
原创 安装ADB Interface驱动
问题 有个工作需要用winform连接一下手机,于是乎就想到了用adb方式连接,然而,还没开始开发就孤岛这个准备阶段就比较坑。首先是电脑连不上手机(小米8se),又是找客服又是下手机助手的弄一遍,都不行,不可否认小米的客服除了让人刷机外其他都不会,哈哈;其次是找到了安装adb驱动后又出现了系统找不到指定文件的问题。详细说一下:1. 下载adb的platform-tools这个东西很普遍都有,我是在别人那边拷贝过来了一份,也可以在Android SDK Manager(下载地址)中下载一份cmd进入命
2020-07-16 16:03:09 18140 1
原创 WebApi的Filter过滤器中使用Unity进行依赖注入IOC
在WebApi的Filter过滤器中使用Unity进行依赖注入IOC问题 在一个webapi中使用了unity作为ioc容器,然后给所有controller添加了一个身份认证的Filter,结果发现在Filter中无法注入,总是null,鼓捣了一会filterprovider也没弄好,最终换了个获取实例的方式,详细说一下首先 给webapi添加一个过滤器public static class WebApiConfig{ public static void Register(HttpConf
2020-07-09 16:49:44 407
原创 Winform中使用signalr
在winform中使用Hub搭建signalr分为服务端与客户端服务端:signalr可以使用Owin托管在winform中1. 首先下载nuget包:Microsoft.AspNet.SignalRMicrosoft.Owin.HostingMicrosoft.Owin.Host.HttpListener2. 实现在winform中的托管在Program中:static void Main(){ Application.EnableVisualStyles(); Ap
2020-06-18 09:56:47 9353 3
原创 委托调用form的show时,未创建窗口句柄前不能调用beginInvoke
委托调用form的show时,未创建窗口句柄前不能调用beginInvoke在工作中遇到一个场景,运行一个form程序,但是有个form1从来没有show过,只是实例化了;form程序中托管了一个webapi,webapi接收到请求时,要show form1;var config = new HttpSelfHostConfiguration("http://localhost:8081");config.Routes.MapHttpRoute( name: "API Default",
2020-06-08 18:16:46 482
原创 使用HttpClient单元测试基于Unity的WebApi
使用HttpClient单元测试基于Unity的WebApiwebapi的单元测试,使用new controller的方式有些地方测试不到,比如过滤器啥的,所以想用httpclient方式测试,模拟真正的链接,但是在测试的时候遇到了一个问题,使用属性注入【Dependency】的时候无法注入,最后又换了构造器注入方式,也不知道怎么着属性注入与构造器注入都好了。。。 尴尬,记录一下吧先上一波controller的代码:[Dependency]public IUserService Service
2020-05-27 10:18:51 505
原创 装箱拆箱
装箱拆箱装箱拆箱是从变量的类型上是 引用类型与值类型之间的转换装箱:将值类型封装成引用类型拆箱:将引用类型转换成值类型里面包括一些定义,举个例子:int i = 1; object obj = i; i = (int)obj;i是值类型,obj是引用类型堆:内存中一块区域,存放引用类型,需要先申请一定大小,才能往里放数据栈:内存中一块区域,存放值类型,程序启动的时候就默认指定了大小,一般是1M,不需要再申请空间,遵循先进后出的顺序装箱步骤:1.将i弹到栈顶2.在堆中申请一块空间,
2020-05-21 17:34:57 90
winform中使用adb访问android手机
2020-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人