Linq指令执行分析
摘要:Linq指令执行分析 一、Linq中IEnumerable的结构 Linq在执行聚合操作和ToXxx系统方法之前,一直都是一个数据源和一串指令(下面的讨论都是基于未执行聚合操作和ToXxx系统方法之前)。 大部分linq返回的迭代器都是一个如下的数据结构: IEnumerable: source:I
阅读全文
C#使用Mutex实现单例应用程序
摘要:不少应用程序有单一实例的需求,也就是同时只能开启一个实例(一般也就是一个进程)。 实现的方式可能有判断进程名字,使用特殊文件等等,但是最靠谱的方式还是使用系统提供的 Mutex 工具。 Mutex是互斥体,命名的互斥体可以跨进程使用,所以可以用以实现程序单一实例这个需求。相关的例子网上应该不少,不过
阅读全文
C#中的继承
摘要:按照我个人的理解,继承和实现接口不是一个概念,结构和类型都可以实现接口,枚举不能。 话说,结构可以继承吗? 先梳理一下C#中的继承关系,如下图: class => [BaseClass =>] System.Object struct => System.ValueType => System.Ob
阅读全文
win8提升winform软件的权限
摘要:在win8系统中,微软提高了系统盘文件的权限,提高了其他系统操作的权限,因此一些桌面应用程序在运行时会报一些权限错误,比如C盘文件操作权限,或注册表操作无权限等。 我之前开发过一款用笔记本一键架设无线网络的程序WIFIHelper,在win7下运行正常,但是到win8下运行的时候,就读取不到系统网卡
阅读全文
C#动态编译代码,执行一个代码片段,或者从指定文件中加载某个接口的实现类
摘要:在项目进行中有时候会需要配置一些复杂的表达式,在程序运行的时候执行表达式,根据结果执行相应的操作,简单写了一个类Expression,利用.net的动态编译技术实现,代码如下: public class Expression { /// <summary> /// 执行一个表达式,或代码片段 ///
阅读全文