摘要:今天看到一篇非常好的写C#委托的文章,所以想记录下来 C#中的委托,顾名思义,就是把事情委托给别人来办理,这包括很多种情况,比如我们想在主窗体中想刷新子窗体的控件(修改子窗体的控件的值); 又比如在多线程的情况下,在其他线程中想刷新主线程的控件; 或则在某个窗体中执行另一个窗体的方法说白了,就是这件
阅读全文
摘要:有一次在公司review代码时,有一个password的字段,原来用的是String类型,有同事提到应该用SecureString比较好 于是我花了点时间了解了一下什么是SecureString, 以及它与String类型的区别 正常的String类型值,在脱离开作用域后,它的值在内存中并不会立即被
阅读全文
摘要:在新西兰工作时,有一次的面试中问到了Parallel类进行多线程编程 我们知道,C#中实现多线程编程有多种方式,包括 1. 使用Thread开启一个新的线程 2. 使用Parallel类 3. 使用Task 我们今天来说一下C#中的Parallel类,Parallel类是C#中可以用来进行多线程编程
阅读全文
摘要:在学习C#中的Task方法时,可以知道Task启动一个异步线程方法可以用Task.Run()进行,具体可以参看博客 https://www.cnblogs.com/yaosj/p/10342883.html 和 https://www.cnblogs.com/wynblogscc/p/1513842
阅读全文
摘要:C#中的左移 << M<<N => 将第一个操作数M向左移动第二个操作数N指定的位数(N位), 空出的位置补0 => 左移相当于乘法, 左移1位相当于乘以2, 左移2位相当于乘以4, 左移3位相当于乘以8 x<<1 = x * 2 x<<2 = x * 4 x<<3 = x * 8 x<<4 = x
阅读全文
摘要:代码开发中,用二进制的情况很少,最近看一个算法题,涉及到二进制,特记录一下C#中二进制和十进制的转换方法 C#中所有的二进制数都是以字符串表示 (显然,十进制是以整数表示) ,比如二进制数据 11011111, 应该表示为字符串 "11011111" 1. 十进制转换为二进制 比如,把十进制整数22
阅读全文
摘要:在看一个算法题时,看到异或这种操作,平时在项目开发中在代码中用的很少,于是特意看了一下,总结如下: 异或 在英文中是 Exclusive OR, 缩写成 xor. 在C#中用^来表示异或运算符, 这个运算符主要是用来进行二进制比较 异或对二进制数据进行比较,对二进制中的每一位进行比较,如果相同,结果
阅读全文
摘要:在项目开发中,遇到一个问题,是这样的,我们有一个接口IConfiguration public interface IConfiguration { string DefaultValue { get; } int Order { get; } } 另外有一个接口ITelemetryConfigur
阅读全文
摘要:最近在看公司的一个项目时,发现里面有用到IntPtr这种类型,由于做了一些学习,特记录如下 公司的项目是用C#写的,但是还有很大一部分Legacy的code是用C++写的,所以就涉及到在C#中调用C++编写的dll的问题,这个时候,在C#中,就需要用到IntPtr了 IntPtr = > IntPo
阅读全文
摘要:MEF - Managed Extensibility Framework 是用于创建轻量,可扩展应用程序的库. 我们可以理解为它的主要作用是解耦, 它让开发人员得以轻松的封装代码并避免强依赖性. MEF让扩展不仅可以在应用程序内重复使用,还可以跨程序重复使用 MEF在程序集System.Compo
阅读全文
摘要:最近看了一些关于二叉树的文章,于是学习了一下C#遍历二叉树的几种方式,特记录如下 二叉树,是一种数据结构, 它是一种非线性的数据结构. 这里的非线性是相对于线性数据结构而言的,像链表,数组,就是属于线性的数据结构. 和链表,数组等线性数据结构比起来,树的平均运行时间更短, 与树相关的排序时间复杂度都
阅读全文
摘要:公司项目中有用到Topshelf 可以参考这篇博客进行了解 https://www.cnblogs.com/zcqiand/p/14613093.html
阅读全文
摘要:在一次面试中被问到这个基础问题. 这里详细说一下 1. 首先说一下String和string string是C#中的类,而String是.net framework中的类. 如果我们在代码中使用string, .net编译器会自动把它编译成String 2. 关于String 和 StringBui
阅读全文
摘要:Enumerable的Intersect方法介绍如下 这个方法用来生成2个序列的交集,在Microsoft的doc文档上,有个例子很好的解释了这一点: Product[] store1 = { new Product { Name = "apple", Code = 9 }, new Product
阅读全文
摘要:在开发一个项目过程中,出现需要对搜索结果进行分页的需求,实现过程记录如下 1. 首先我们需要有一个分页类PaginatedList<TEntity>, 这个分页类大概包括以下信息 总行数,当前页面,每页行数,总页数, 前一页,下一页. 为了方便后面操作,我们使它继承自List<T> 写成如下: pu
阅读全文
摘要:有一张表trust, 里面每个PersonId对应多条记录,要求按照PersonId 进行分组,然后取出每个Person最近的一条记录。组成一个新的列表 Linq to SQL var result = from n in trust group n by n.PersonId into g sel
阅读全文
摘要:昨天参加一次国内面试,面试题目记录如下 1. 如何避免CSRF 2. .Net 中的反射 3. 说一下对IOC的理解,有哪几种形式。 为什么需要用依赖注入 4. Session 和 Cookie的理解 如果你正通过浏览器在访问, 你的浏览器页面crash了,这个时候,session还存在么,会造成内
阅读全文
摘要:最近的一个面试中,被问到IQueryable 和 IEnumerable的区别, 我自己看了一些文章,总结如下: 1. 要明白一点,IQueryable接口是继承自IEnumerable的接口的. 2. IQueryable中有表达式树, 这可以看作是它的一个优势。所以,使用IQueryable操作
阅读全文
摘要:请参考 https://www.cnblogs.com/kissdodog/archive/2013/01/27/2879185.html
阅读全文