![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c#
文章平均质量分 51
辰三
柴米油盐酱醋茶
展开
-
抽象工厂模式与工厂方法模式代码结构的区别
工厂方法模式相当于是生产线的小作坊,比如有四个小作坊,一个产A手机、一个产A电脑,一个产B手机、一个产B电脑;抽象工厂模式相当于来了2个厂长,把个小作坊给收购了,A厂子里面有手机和电脑两条生产线,B厂子里也有两条对应的生产线。..................原创 2022-08-05 15:56:53 · 249 阅读 · 0 评论 -
vs报错cs2001 未能找到源文件 csc文件
cs2001 未能找到源文件原创 2021-12-23 15:06:19 · 2782 阅读 · 1 评论 -
基类只执行一次的构造函数
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-09-02 14:06:36 · 690 阅读 · 0 评论 -
判断两个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 · 2604 阅读 · 0 评论 -
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 · 3963 阅读 · 0 评论 -
在类库中引用Oracle.ManagedDataAccess的nuget
前提:一个解决方案中可能存在多个项目,我习惯将实体与数据库连接层都放在一个单独的项目中,这样方便给其他的项目使用,之前都是用的msql,并没有出现问题,现在用到了oracle,出现了问题,但是已经解决。问题:在项目(非启动项目)中引用后,报 "需要引用ManagedDataAccess.dll 未安装或者版本冲突"异常无法读取config文件中配置的connectionstring解决了1问题后,报 “连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确”问题根源:程序启动后,只原创 2021-04-22 13:57:55 · 780 阅读 · 0 评论 -
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 · 2594 阅读 · 0 评论 -
反射异常参数计数不匹配
参数计数不匹配,网上好多都是调用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 · 1741 阅读 · 0 评论 -
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 · 1056 阅读 · 0 评论 -
在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 · 805 阅读 · 1 评论 -
正则表达式入门
文章目录前言一、开始干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 · 432 阅读 · 0 评论 -
判断事件是否绑定并移除绑定事件
通过反射原创 2020-08-21 17:19:19 · 1531 阅读 · 0 评论 -
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 · 406 阅读 · 0 评论 -
winform使用ShowDialog后,调用异步线程(async)等待(await)时,还未执行完毕,form就关了
ShowDialog后,调用异步,await还未等异步线程执行完毕,弹窗关闭了问题描述: ShowDialog弹出了一个Form,然后在form中有点击button执行一个异步调用接口查询操作,等待查询结束后再做其他判断,结果异步还未执行完毕,form就执行了dispose关闭了。原因:最终确定原因是在调用异步前面设置了DialogResult的值。当设置了DialogResult的值后,窗体将自动关闭,该逻辑在底层默认执行。此时,用await等待异步执行时,并没有占用主线程,然后窗体就关了。解决办法原创 2020-07-30 14:45:35 · 1908 阅读 · 0 评论 -
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 · 376 阅读 · 0 评论 -
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 · 8099 阅读 · 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 · 447 阅读 · 0 评论 -
装箱拆箱
装箱拆箱装箱拆箱是从变量的类型上是 引用类型与值类型之间的转换装箱:将值类型封装成引用类型拆箱:将引用类型转换成值类型里面包括一些定义,举个例子:int i = 1; object obj = i; i = (int)obj;i是值类型,obj是引用类型堆:内存中一块区域,存放引用类型,需要先申请一定大小,才能往里放数据栈:内存中一块区域,存放值类型,程序启动的时候就默认指定了大小,一般是1M,不需要再申请空间,遵循先进后出的顺序装箱步骤:1.将i弹到栈顶2.在堆中申请一块空间,原创 2020-05-21 17:34:57 · 71 阅读 · 0 评论