随笔分类 -  Csharp

正则表达式实现对地址第一个区域的字符串截取
摘要:有如下地址类型的字符串: 田家庵区淮河新城二期17,2,404 兰溪市金圆上都18幢 荔县管池镇 要截取出第一个区域的字符串,以上3个截取的值分别为: 田家庵区 兰溪市 荔县 对应代码,初始写为 后来发现其默认是贪婪模式,如"荔县管池镇",会把后面的镇也截取进去,于是修改为 在公司电脑上仍然会多截取 阅读全文

posted @ 2016-09-01 08:10 飞翔蚂蚁 阅读(2084) 评论(0) 推荐(0)

判断一个变量是否是某种基本类型.
摘要:public static void Judge(object ma) { var ta = ma.GetType(); //通过Type可以对传入的参数类型进行基本类型的判断 Console.WriteLine(ta.Is... 阅读全文

posted @ 2015-09-25 20:22 飞翔蚂蚁 阅读(340) 评论(0) 推荐(0)

强通知事件和弱关注事件
摘要:最近写点代码,被字段值的NULL和初始值问题,存储问题,以及通知变化搞得焦头烂额,本来觉得很简单的事,几天下来都没搞清楚。现在主要谈谈我对事件的理解。public event Action AsmChanged;这就是一个事件,它存在于一个类A中,当A的某字段值变化时,就会触发该事件。那么它的生命周... 阅读全文

posted @ 2015-08-09 10:50 飞翔蚂蚁 阅读(322) 评论(0) 推荐(0)

C# ThreadLocal
摘要:ThreadLocal的主要作用是让各个线程维持自己的变量。.NET 4.0在线程方面加入了很多东西,其中就包括ThreadLocal类型,他的出现更大的简化了TLS的操作。ThreadLocal类型和Lazy惊人相似,构造函数参数是Func用来创建对象(当然也可以理解成对象的默认值),然后用Val... 阅读全文

posted @ 2015-07-09 11:59 飞翔蚂蚁 阅读(13288) 评论(2) 推荐(2)

求二进制数中1的个数(转)
摘要:2.1 求二进制数中1的个数对于一个字节(8bit)的变量,求其二进制表示中"1"的个数,要求算法的执行效率尽可能地高。分析与解法大多数的读者都会有这样的反应:这个题目也太简单了吧,解法似乎也相当地单一,不会有太多的曲折分析或者峰回路转之处。那么面试者到底能用这个题目考察我们什么呢?事实上,在编写程... 阅读全文

posted @ 2015-07-04 17:03 飞翔蚂蚁 阅读(234) 评论(0) 推荐(0)

C# HashSet 用法[转]
摘要:原文链接.NET 3.5在System.Collections.Generic命名空间中包含一个新的集合类:HashSet。这个集合类包含不重复项的无序列表。这种集合称为“集(set)”。集是一个保留字,所以该类有另一个名称HashSet。这个名称很容易理解,因为这个集合基于散列值,插入元素的操作非... 阅读全文

posted @ 2015-05-20 10:05 飞翔蚂蚁 阅读(1011) 评论(0) 推荐(0)

方法类和执行类
摘要:这个是自己感悟出来的,在一个程序软件中,我们会有很多类的创建和调用有许多类,它们可以分为细致的单独的模块,它们分管不同的功能,比如string,list,dictionary,它们作为基本的数据类提供不同的形态描述但是还有一些类,它们是相互作用的相互调用的,本质上,这些类其实可以归纳为一个类,但是它... 阅读全文

posted @ 2015-04-29 23:47 飞翔蚂蚁 阅读(326) 评论(0) 推荐(0)

利用VS自带的dotfuscator混淆代码的学习
摘要:对于一些原创的敏感代码,我们可以通过简单的重命名混淆使得别人难以真正理解执行原理.这一点,使用VS自带的dotfuscator即可实现.如上图所示,你可以自定义选择哪些类被排除重命名,内置的规则中,序列化变量都是被排除的。并且有一点你可以大胆放心: 公用的所有字段、方法、属性、类名字都不会被重命名!... 阅读全文

posted @ 2015-04-26 18:04 飞翔蚂蚁 阅读(760) 评论(0) 推荐(0)

如何用C#动态编译、执行代码[转]
摘要:原文链接在开始之前,先熟悉几个类及部分属性、方法:CSharpCodeProvider、ICodeCompiler、CompilerParameters、CompilerResults、Assembly。 一、CSharpCodeProvider 提供对C#代码生成器和代码编译器的实例的访问... 阅读全文

posted @ 2015-04-24 12:25 飞翔蚂蚁 阅读(319) 评论(0) 推荐(0)

对枚举的认识,应用,以及用枚举变量传输多个概念的小技巧!
摘要:枚举是一种很好用的数据类型. enum TEST //定义一个枚举类型 { goodboy=0, goodboy2, girl, girl2, haha ... 阅读全文

posted @ 2015-04-18 13:48 飞翔蚂蚁 阅读(1243) 评论(0) 推荐(0)

二进制流BinaryFormatter存储读取数据的细节测试
摘要:二进制流的使用很方便,为了更好的理解应用它,我创建简单对象开始测试它的增加特性和减少特性. [Serializable] class Data----------开始时候的存储对象 { public string name = "nam... 阅读全文

posted @ 2015-04-10 01:08 飞翔蚂蚁 阅读(660) 评论(0) 推荐(0)

委托与事件的区别
摘要:事件是多播,一次触发能带动多个事件实例执行。往往不关心执行的具体过程与返回值。而委托是单例,只执行一个实例(如果是委托集合则另当别论), 执行过程或者返回值可能调用方法需要的.对一个类或者方法而言:事件的实现是可选的---而一般委托的实现是必然实现的.虽然几乎没有这个功能,但是有必要显示它: 事件和... 阅读全文

posted @ 2015-03-26 09:45 飞翔蚂蚁 阅读(305) 评论(0) 推荐(0)

利用Marshal.AllocHGlobal申请非托管内存,unsafe代码
摘要:unsafe public class RUN { int[] array3; IntPtr handle; int handleCount = 0; public RUN() ... 阅读全文

posted @ 2015-03-25 07:47 飞翔蚂蚁 阅读(1685) 评论(0) 推荐(0)

6个2教你认识递归的力量!
摘要:2^(2^(2^(2^(2^2))))=?这个是很久以前我自己想出来的一个计算式,绝对原创。或许其他专业人士早就发现了,只是我孤陋寡闻,并没有从网上看见它。这个计算式最大的趣味就在于它看起来并没有 2^99999999999999999999999那么吓人,但是它真正的值比2^99999999999... 阅读全文

posted @ 2015-03-14 17:43 飞翔蚂蚁 阅读(1003) 评论(8) 推荐(1)

GOTO语句以及GOTO机制的模式实现
摘要:goto语句提供了方法内部的任意跳转,它在特殊场景下被应用.而假设一个对象执行一个方法后,我们期望其余任何对象都可以捕获它,然后自己执行某些操作,那么可以怎么实现呢class 皇宫{ void 告示天下(){ //告示内容 //将告示内容映射到天空上,而天空是天地之间的公共区域,所有天地之间的对象... 阅读全文

posted @ 2015-03-11 10:52 飞翔蚂蚁 阅读(354) 评论(0) 推荐(0)

C#中实现C++中的友元类
摘要:最近做一个小程序,一个类A(负责显示处理)需要大量调用类B(负责数据处理)的函数,我最先想到的C++中的友元概念,因为类B中的这些函数并不希望public,它只是允许类A调用监测.网上搜索了一下,没有好的简单实现,但是我想到了自己以前经常写的一种方式,那不就是最简单的实现吗? public c... 阅读全文

posted @ 2015-03-07 11:44 飞翔蚂蚁 阅读(3555) 评论(2) 推荐(0)

四大开源协议比较:BSD、Apache、GPL、LGPL【转载】
摘要:四大开源协议原文链接本文参考文献:http://www.fsf.org/licensing/licenses/ 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们现在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准... 阅读全文

posted @ 2015-02-19 13:46 飞翔蚂蚁 阅读(298) 评论(0) 推荐(0)

C#模版学习研究
摘要:原文链接1 原文链接2using System; using System.Collections.Generic; using System.Text;using T = System.Byte; using X = System.Int32; using K = System.Int32;其实... 阅读全文

posted @ 2015-02-14 13:35 飞翔蚂蚁 阅读(148) 评论(0) 推荐(0)

github下载下来的C#控制台小游戏[含源码]
摘要:早就听说了github是世界最大的源码库,但自己却不是很懂,今天去研究了下,注册了一个帐号,然后在上面搜索了一下C# game,然后发现有许多的游戏.随意地选择了一个,感觉比较简单,于是就下载了下来。这个解决方案包含了5个项目,每个项目都是一个小的控制台游戏。我打开运行了了下,有2个项目报错,但是汽... 阅读全文

posted @ 2015-02-13 01:46 飞翔蚂蚁 阅读(2217) 评论(0) 推荐(1)

对dynamic和lambda的学习
摘要:var, object, dynamic的区别以及使用dynamic(2) – ExpandoObject的使用.NET中的Lambda表达式与匿名方法 阅读全文

posted @ 2015-02-12 17:07 飞翔蚂蚁 阅读(314) 评论(0) 推荐(0)

导航