随笔- 672
文章- 2
评论- 325
阅读-
281万
随笔分类 - C#
C#中的Finalize,Dispose,SuppressFinalize(转载)
摘要:MSDN建议按照下面的模式实现IDisposable接口: public class Foo : IDisposable { public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual v
阅读全文
在.NET Framework中慎用DirectoryInfo.GetFiles方法
摘要:.NET Framework中的DirectoryInfo.GetFiles方法,可以在一个文件夹下通过通配符找出符合条件的文件。 我们首先在文件夹C:\DemoFolder下定义两个文件:demo.xls和demo.xlsx 然后我们新建一个.NET Framework控制台项目,然后在其Prog
阅读全文
C#中用OLEDB操作EXCEL时,单元格内容长度超过255被截断
摘要:C#中Microsoft.ACE.OLEDB.12.0 驱动读取excel,会读取前8行来判定每列的数据类型,假如没有超过255个字符,那么会被设置为nvarchar(255),从第9行开始,超过255字符会被自动截断! 推荐使用第三方库:ExcelDataReader Important note
阅读全文
C# 判断一个文本文件的编码格式(转载)
摘要:文件的字符集在Windows下有两种,一种是ANSI,一种Unicode。对于Unicode,Windows支持了它的三种编码方式,一种是小尾编码(Unicode),一种是大尾编码(BigEndianUnicode),一种是UTF-8编码。我们可以从文件的头部来区分一个文件是属于哪种编码。当头部开始
阅读全文
C#中当程序的访问权限不足时,Directory.Exists和File.Exists方法不会抛出异常报错
摘要:有些时候,我们开发的C#应用程序的执行账号,可能没有对一些文件夹和文件的访问权限,当我们使用Directory.Exists和File.Exists方法去判断这些文件夹和文件是否存在的时候,Directory.Exists和File.Exists方法并不会抛出异常报错,这两个方法会返回false,表
阅读全文
C#中,使用显式类型转换(int)和Math.Round方法,将浮点数转换为整数的区别
摘要:主要区别就是,显式类型转换(int)是将浮点数的整数部分截取出来,然后转换为整数,所以相当于是向下取整。而Math.Round方法是对浮点数进行四舍五入后,转换为整数。 新建一个.NET Core控制台项目,示例代码如下: C#中向上取整和向下取整 Math.Ceiling()向上取整,Math.F
阅读全文
C#语言之“string格式的日期时间字符串转为DateTime类型”的方法(转载)
摘要:方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss 方法二:Convert.ToDateTime(string, IFormatProvider) using System; using System.Globaliza
阅读全文
C#夯实基础之多线程二:主线程、前台线程与后台线程(转载)
摘要:我们在《C#夯实基础之多线程一:初识多线程》一文中第二部分中指出,既然windows最终发展出了多线程模型,按理说,我们直接使用一个.NetFramework的线程类就可以直接撸代码了,但在这之前,我们还需要认识一下线程的一些基本特性,它们的出现并不是多余的,而是为了解决一部分问题出现的,毕竟存在即
阅读全文
C# 程序默认使用管理员权限(转载)
摘要:1、从A程序启动B程序,当B程序需要管理员权限的时候代码如下 A程序里面启动B程序的代码如下 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "D:\\B.exe"; //设置程序启动路径 start
阅读全文
c#静态构造函数 与 构造函数 你是否还记得?(转载)
摘要:构造函数这个概念,在我们刚开始学习编程语言的时候,就被老师一遍一遍的教着。亲,现在你还记得静态构造函数的适用场景吗?如果没有,那么我们一起来复习一下吧。静态构造函数是在构造函数方法前面添加了static关键字之后形成的,并且没有修饰符(public,private),没有参数。 静态构造函数有哪些特
阅读全文
LINQ Group By操作(转载)
摘要:假设我们需要从两张表中统计出热门商圈,这两张表内容如下: 上表是所有政区,商圈中的餐饮个数,名为FoodDistrict 下表是所有政区,商圈中的SPA个数,名为SPADistrict 现在要把这两张表,根据政区和商圈合并,然后相加Counts,根据Counts的总大小排序,统计热门商圈和热门政区。
阅读全文
FileShare枚举的使用(文件读写锁) - (转载)
摘要:开发过程中,我们往往需要大量与文件交互,但往往会出现很多令人措手不及的意外,所以对普通的C#文件操作做了一次总结,问题大部分如下: 看到这些,有经验的同学应该就会说资源没被释放掉,但也存在如下可能性。我们对文件的操作非常频繁,所以写了特定的操作类/组件来维护文件之间的操作,知道特定的时刻才结束,常见
阅读全文
Multiple Threads reading from the same file(转载)
摘要:问 I have a xml file that needs to be read from many many times. I am trying to use the Parallel.ForEach to speed this processes up since none of that
阅读全文
C# 深浅复制 MemberwiseClone(转载)
摘要:最近拜读了大话设计模式:原型模式,该模式主要应用C# 深浅复制来实现的!关于深浅复制大家可参考MSDN:https://docs.microsoft.com/zh-cn/dotnet/api/system.object.memberwiseclone 所谓深浅复制可解读为: 浅复制:在C#中调用Ob
阅读全文
C#多线程中的异常处理(转载)
摘要:常规Thread中处理异常 使用Thread创建的子线程,需要在委托中捕捉,无法在上下文线程中捕捉 Task中处理异常 1.仍然可以在委托中捕获异常2.可以捕获Task.Wait() 或者 Task.Result 的 AggregateException 异常 AggregateException
阅读全文
c#中的多线程异常 (转载)
摘要:1.对于Thread操作的异常处理 在DoWork函数里抛出的异常时不会被主线程的try,catch捕捉的,各个线程应该有自己的try,catch去处理线程异常。正确写法: 2. 异步函数的异常处理例如如 WebClient中的 UploadStringAsync,它的异常会在UploadStrin
阅读全文
C# 16进制与字符串、字节数组之间的转换 (转载)
摘要:1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 2.在串口通讯过程中,经常要用到 16进制与字符串、字节数组之间的转换 字符串转16进制字节数组 字节数组转16进制字符串 从汉字转换到16进制 16进制转换成汉字 原文链接
阅读全文
C#析构函数 (转载)
摘要:一、C#析构函数 1. 析构函数的定义与注意的问题析构函数用于释放被占用的系统资源。析构函数的名字由符号“~”加类名组成。使用析构函数时,应该注意下面的问题: 只能在类中使用析构函数,不能在结构中使用析构函数。 一个类只能有一个析构函数。 不能继承或重载析构函数。 析构函数只能被自动调用。 析构函数
阅读全文
关于C#中async/await中的异常处理(下)-(转载)
摘要:上一篇文章里我们讨论了某些async/await的用法中出现遗漏异常的情况,并且谈到该如何使用WhenAll辅助方法来避免这种情况。WhenAll辅助方法将会汇总一系列的任务对象,一旦其中某个出错,则会抛出“其中一个”异常。那么究竟是哪个异常?如果我们要处理所有的异常怎么办?我们这次就来详细讨论aw
阅读全文