使用Func<T1, T2, TResult>
摘要:使用Func 委托返回匿名对象Func委托 封装一个具有两个参数并返回TResult参数指定的类型值的方法。语法public delegate TResult Func( T1 arg1, T2 arg2)View Codein T1此委托封装的方法的第一个参数类型。该类型参数是逆变。即可以使用指定的类型或派生程度更低的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。in T2此委托封装的方法的第二个参数类型。out TResult此委托封装的方法的返回值类型。该类型参数是协变。即可以使用指定的类型或派生程度更高的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。...
阅读全文
MVVM1
摘要:silverlight的数据校验大体分成3种类型:数据是非必填的但是需要满足相应数据格式的数据是必填的且可能需要进行数据格式校验的其他(如数据的联动校验)以下的数据校验方式针对第二种:在相应的控件绑定上加上NotifyOnValidationError=True,ValidatesOnDataErrors=True?NotifyOnValidationError属性该属性的功能,是当验证错误出现时是否激活BindingValidationError事件;该属性是Silverlight独有的验证属性之一,经常和ValidatesOnExceptions属性配合使用。ValidatesOnData
阅读全文
Expression 表达式树学习整理
摘要:Expression 表达式树学习整理整理了一下表达式树的一些东西,入门足够了先从ConstantExpression开始一步一步的来吧 它表示具有常量值的表达式我们选建一个控制台应用程序?ConstantExpression _constExp = Expression.Constant("aaa",typeof(string));//一个常量//Console.Writeline("aaa");MethodCallExpression _methodCallexp=Expression.Call(typeof(Console).GetMethod(&
阅读全文
Bitmap的读写
摘要:Bitmap的读写和几个小儿科的滤镜效果~ 闲来玩玩图像处理,拿破仑说过:“不想自己实现滤镜的美工不是好程序员~~#@!*^...#&!@......” 因为在学校做过很多美工的工作,而且从小就喜欢画画所以对图像相关的东西都还比较感兴趣,而且PS提供了强大的功能,那就是自己写的滤镜程序可以以适当的形式嵌入作为滤镜库里的一种效果而存在,要是能自己能写常用的滤镜效果以后用起来就方便多了。从最简单的bitmap开始,bitmap是Windows系统下的标准图像格式。由于位图不采用任何压缩方法,所以大小一般都比较大。图像的结构可以表示如下:1.首先是位图文件头 两字节的位图文件类型用于指示位图
阅读全文
对象转Json序列化
摘要:C#--对象转Json序列化前言 最近在研究Android项目,其中涉及到Android中解析Json数据的问题,需要模拟网络中传递Json数据的模式,因为以前是.net的工程师,所以想着从.net的平台开发服务,传递Json格式的数据。那么先来介绍一些什么是JSON。JSON Json(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JS的一个子集。 Json采用完全独立于语言的文本格式。这使得Json成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 Json简单来说就是JS中的对象和数组,所以Json也存在两种结构:对象、...
阅读全文
使用C#开发ActiveX控件
摘要:使用C#开发ActiveX控件(新)前言ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言开发ActiveX控件。虽然本文通篇都在讲如何使用C#语言开发ActiveX控件,但我并不极力推荐使用这种技术,因为该技术存在明显的局限,即需要浏览器端安装.NET Framework(版本取决于开发ActiveX控件使用的.NET Framework版本),该局限对于挑
阅读全文
C#中Monitor和Lock以及区别
摘要:C#中Monitor和Lock以及区别 Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放锁(Monitor.Exit())。 2.Monitor的常用属性和方法: Enter(Object) 在指定对象上获取排他锁。 Exit(Object) 释放指定对象上的排他锁。 IsEntered 确定当前线程是否保留指定对象...
阅读全文
STSdb,最强纯C#开源NoSQL和虚拟文件系统 4.0 RC2 支持C/S架构
摘要:STSdb,最强纯C#开源NoSQL和虚拟文件系统 4.0 RC2 支持C/S架构STSdb是什么再来说明一下STSdb是什么:STSdb是C#写的开源嵌入式数据库和虚拟文件系统,支持实时索引,性能是同类产品的几倍到几十倍,访问官方网站。温故知新之前发了文章《STSdb,最强纯C#开源NoSQL和虚拟文件系统》,相信大家对Waterfall-tree(瀑布树)算法还是有兴趣的。不兼容改动为了提供更易容的API和更好的性能,STSdb 4.0 RC2改变了文件格式,这个改变可能会持续,直到4.0正式版。C/S架构在上一篇文章,提及会在4.0正式版之前加入对C/S的支持,现在在RC2已经引入。客户
阅读全文
C#实现eval
摘要:C#实现eval 进行四则运算(有码)在JavaScript中实现四则运算很简单,只需要调用eval函数就行了,但是不知道什么原因万能的.NET却没有封装这个函数~在这里为大家封装了一个C#版本的eval函数,具体的设计参考了《大话数据结构》1. 中缀表达式中缀表达式即我们平时使用的四则运算表达式,如:9+(3-1)*3+10/2,但是程序却很难识别这样的表达式,所以需要把它转化成后缀表达式2. 后缀表达式因为所有的运算符都在数字后面,所以称其为后缀表达式,如:9 3 1 – 3 * + 10 2 / +,那么程序如何识别后缀表达式呢,这里就用到了栈(Stack),主要分以下步骤:1) 将字符
阅读全文
为什么必须是final的呢?
摘要:为什么必须是final的呢?一个谜团如果你用过类似guava这种“伪函数式编程”风格的library的话,那下面这种风格的代码对你来说应该不陌生:123456789public void tryUsingGuava() { final int expectedLength = 4; Iterables.filter(Lists.newArrayList("123", "1234"), new Predicate() { @Override public boolean apply(String str) { return str.l...
阅读全文
Winform开发框架之统计图表的实现
摘要:Winform开发框架之统计图表的实现在前面的一些随笔中,介绍了不少我的Winform框架的特性,上篇随笔《Winform开发框架之通用高级查询模块》对其中的通用高级模块进了一个整理说明,本篇继续介绍Winform开发框架重要的一个特性之统计图表的实现。统计图表在很多项目都可能用到,集成到框架中,更方便大家对一些图表项目的设计理解以及功能的重用。在一般的传统的框架中,可以采用ZedGraph开源控件或者微软自带的MSChart进行图表设计,DevExpress控件套件有自己的图表控件,本篇主要介绍基于DevExpress控件的图表控件进行图表设计,进一步丰富我的Winform开发框架。1、普通
阅读全文
C#
摘要:C#复习第一章1、.NET是平台,C#是.NET上的一门语言。2、C#的异常处理机制:try catch finally Try 引发异常 catch捕获异常 finally 释放资源3、catch finally(错误)问题:.NET Framework由什么组成?答:有公共语言运行时(CLR)和.NET Framework基类库(FCL)这两大组件组成。第二章 类、对象、方法1、什么是类:具有相似特性(属性)和行为(方法)的对象的集合。2、什么是对象:在现实世界中存在的,并且看得见摸得着的一切事物。3、类与对象之间的关系:一对多的关系。类是对象的蓝图。4、面向对象的三大特性:封装、继承、多
阅读全文
AppDomain卸载与代理
摘要:AppDomain卸载与代理涉及内容:反射与MEF解决方案AppDomain卸载与代理WinForm、WcfRestService示插件系统的基本目的是实现宿主与组件的隔离,核心是作为接驳约定的接口,宿主使用类型发现及挂载插件,以下是反射实现。创建类库项目Plugin,添加接口IPlugin:View Code创建控制台程序HostApp,添加对Plugin项目的引用,Main方法代码:View Code创建类库项目MyPlugin1,添加对Plugin项目的引用,添加Plugin1类并实现IPlugin:View Code修改该项目的属性,在“生成”选项卡中找到输出,将“输出路径”指向Hos
阅读全文
设计时与运行时的区别
摘要:设计时与运行时的区别设计时和运行时的概念网上的中文资料很少,如果不是做第三方组件开发的或者跟设计器开发有关的,几乎用不到这些概念。为了迎合之前几篇博客,我想有必要说一下它两的概念和区别,以及用在什么地方。博客好久没更新,比较忙。 首先,我个人认为“设计时”和“运行时”是针对组件而言的(包括控件),也就是说,一个组件可以处在“运行时”也可以处在“设计时”两个状态,从字面上的意思来看,“设计时”当然是指处在开发阶段,开发人员在设计器中开发组件的时候,而“运行时”指程序处在运行阶段,比如一个button控件,在设计器中的窗体中时,它就处于“设计时”,当程序运行起来之后,这个button还是在窗体中.
阅读全文
发布Activex全过程
摘要:C#制作、打包、签名、发布Activex全过程一、前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信、调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现。由于本人主要擅长C#,自然本文给出了用C#实现的范例,本文的预期效果是有一定Winform基础的人可都轻松读懂本文。文章主要介绍了以下几个部分:1、用C#制作Activex控件,并发布为msi安装文件2、将exe打包为cab,达到浏览器自动安装的效果3、给cab数字签名(可选)4、将Activex应用到网页上二、用C#制作Activex控件,并发布为msi安装文件1、新建window用户控件项目Easy
阅读全文
C#解析JSON几种方式-整理
摘要:C#解析JSON几种方式-整理 1 public static class JSON 2 { 3 public static T parse<T>(string jsonString) 4 { 5 using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) 6 { 7 return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms...
阅读全文
压缩算法实现之LZ78
摘要:压缩算法实现之LZ78断地从字符流中提取新的缀-符串(String),通俗地理解为新"词条",然后用"代号"也就是码字(Code word)表示这个"词条"。对字符流的编码就变成了用码字(Code word)去替换字符流(Charstream),生成码字流(Codestream),从而达到压缩数据的目的。几个约定:字符流(Charstream):要被编码的数据序列。字符(Character):字符流中的基本数据单元。前缀(Prefix): 在一个字符之前的字符序列。缀-符串(String):前缀+字符。码字(Code word):编码
阅读全文
.NET依托CLR进行的内存的管理
摘要:看了http://www.cnblogs.com/liulun/p/3145351.html 不错,补习下相关技术。。正文:.NET依托CLR进行的内存的管理 有了CLR 基本不需要担心.net程序的内存管理,他负责了内存的分配和清理回收。.net 分为了两种类型的数据:值类型和引用类型,CLR也分别对两种类型做了内存上的处理内存分配-值类型: 首先Windows使用虚拟寻址系统来管理内存,然后‘虚拟寻址系统把程序实际可用的内存地址再映射到硬件内存中的实际地址上,CLR的内存管理的分配,也就是在这个虚拟寻址系统上,也叫虚拟内存空间中。 在虚拟内存中有一块区域用来存储值类型数据,叫做栈区,...
阅读全文
C# Retry重试操作解决方案(附源码)
摘要:C# Retry重试操作解决方案(附源码)一、前言(1)对于Thread的Abort方法,如果线程当前正在执行的是一段非托管代码,那么CLR就不会抛出ThreadAbortException,只有当代码继续回到CLR中时,才会引发ThreadAbortException。当然,即便是在CLR环境中ThreadAbortException也不会立即引发。(2)对于BackgroundWorker的CancelAsync方法,需要设置WorkerSupportsCancellation属性为True,在执行方法内部检测CancellationPending标识,用户负责退出。(3)对于Cancel
阅读全文
一个方便且通用的导出数据到 Excel 的类库
摘要:一个方便且通用的导出数据到 Excel 的类库起源:之前在做一个项目时,客户提出了许多的导出数据的需求: 导出用户信息 导出业务实体信息 各种查询都要能导出 导出的数据要和界面上看到的一致 可以分页导出 。。。为了应对用户的这些需求,我决定先写一个能够满足这些需求的导出功能封装库,于是就有了这个类库。选材:导出 Excel 完全靠自己写是不太实际的,因此需要使用一些现成的东西,目前导出 Excel 大约有一下方法:使用 COM 组件使用 OpenXMLSDK使用 NPOI使用 COM 组件,效率较低使用 OpenXmlSDK,目前智能生成 Office 2007 格式,还不够通用N...
阅读全文