随笔分类 - C#
摘要:背景 在C#中,如果想要为List 实现排序,那么需要实现一个接口IComparer接口,从而根据接口中定义的方法来进行排序。 在这里给出关于IComparer的官方参考文档IComparer参考文档 在这里我自己通过对分数进行如下的规则排序: 首先按照chinese分数排序; chinese分数相
阅读全文
摘要:方法一 直接使用流判断 public static bool isFileLocked(string pathName) { try { if (!File.Exists(pathName)) { return false; } using (var fs = new FileStream(path
阅读全文
摘要:背景 最近自己在做一个功能的时候,需要判断一个文件是否是真的图片,也就是说类似通过修改后缀名的方法伪造的图片需要识别出来。拿到这个功能的时候,自己首先想到的是C 是否有相关的类可以判断是否是图片,例如通过给出文件路径,用相关的方法是否可以构造出一个image对象;如果没有对应的方法的话,那么自己只能
阅读全文
摘要:背景 最近在做一个功能的时候,需要判断某个软件是否安装,如果没有安装不显示对应的功能。我个人觉得最好注册表中读取某个键值,用对应的键值来判断是否安装,因为每个软件安装之后都会在注册表中注册对应的键值,并且有些键值是独一无二的。开始的时候使用的是C ,所以自己直接去官网看了是否有对应的API,之后自己
阅读全文
摘要:委托 最近自己在调试C 项目,发现经常可以看到委托和 表达式,各种花里胡哨的写法把我给整的云里雾里的,于是自己特意花了一点功夫来整理关于 的相关知识,方便自己日后查阅。 何为委托 委托是.NET中的寻址方法,和C++的 很像;但是委托是 ,定义了返回类型和参数类型,也就是说委托一种用户自定义的类型,
阅读全文
摘要:泛型的作用和约定 提高性能 从值类型转换为引用类型为 ,把引用类型转换为值类型为 装箱和拆箱很容易使用,但是性能损失比较大,尤其是遍历许多项的时候。 不使用对象,在使用时定义类型 var list = new List(); list.Add(44); // no boxing int item =
阅读全文
摘要:背景 最近在调试C 项目的时候,发现一个比较关于 的特殊用法,当时把我给惊到了,所以特意用这篇短短的笔记来记录一下我的解惑过程; 示例代码: showsomething(isNameNull ?? errorMes); 上面那个就是 的用法,下面的过程就是我自己解惑的过程,吃一堑长一智! ?的使用
阅读全文