2012年5月5日

Expression<Tdelegate>解析

摘要: 数据库实体映射经常需要把lamda表达式转换为sql表达式,可以通过Expression<Tdelegate>来解析,下面是一个条件表达式解析类,还有很多不完善的,只是提供一种比较简单易懂的思路。 1 internal class PredicateConvert<T> 2 { 3 public string PredicateText { get; private set; } 4 Dictionary<PropertyInfo, ColumnAttribute> _columns; 5 public Predicate... 阅读全文

posted @ 2012-05-05 15:15 小指令 阅读(2488) 评论(2) 推荐(1)

2012年4月2日

json的开源网站

摘要: http://www.mongodb.org/display/DOCS/CSharp+Language+Centerhttp://json.codeplex.com/ 阅读全文

posted @ 2012-04-02 12:33 小指令 阅读(131) 评论(0) 推荐(0)

2012年3月2日

序列化的一点总结(二)

摘要: 一些无法序列化的字段(比如这个字段的类型没有标记为Serializable),则可以对其继承ISerializable接口,通过这个接口的public void GetObjectData(SerializationInfo info, StreamingContext context)来自定义序列化过程,通过构造一个包含SerializationInfo info, StreamingContext context这两个参数的构造函数来反序列化。 public class CMatrix:Matrix<complex>,ISerializable { pr... 阅读全文

posted @ 2012-03-02 21:02 小指令 阅读(246) 评论(0) 推荐(0)

2012年2月27日

序列化一点总结

摘要: 这两天写了一个ILNumberics的包装类,涉及到序列化时,遇到一个ILArray<T>不能使用Json.net类库序列化的问题,折腾了半天,终于搞定了,把这个经验给大家分享一下: 1、序列化的类经常需要一个默认的不带参数的构造函数; 2、不能序列化的字段用Json.Net支持序列化回调方法,通过一个过渡的字段来代替它来序列化,通过序列化回调方法绑定这两个字段。举例如下: 1 [Serializable] 2 public abstract class Matrix<T> 3 { 4 #region 属性 5 protect... 阅读全文

posted @ 2012-02-27 10:23 小指令 阅读(399) 评论(0) 推荐(0)

2012年2月7日

Ado.net与ORM的比较(转)

摘要: http://blog.csdn.net/zhoufoxcn/article/details/5381379http://blog.csdn.net/zhoufoxcn/article/details/5402511http://blog.csdn.net/zhoufoxcn/article/details/5473863http://blog.csdn.net/zhoufoxcn/article/details/5573539http://blog.csdn.net/zhoufoxcn/article/details/6085718http://blog.csdn.net/zhoufoxcn 阅读全文

posted @ 2012-02-07 23:29 小指令 阅读(314) 评论(0) 推荐(0)

2011年8月30日

数学开源库

摘要: 今天在codeplex网发现了一个比较好用的.net数学开源库,线性代数部分比较全面。http://mathnetnumerics.codeplex.com/,http://science.codeplex.com/,http://pytools.codeplex.com/;http://osl.iu.edu/research/mtl/,http://ilnumerics.net/ 阅读全文

posted @ 2011-08-30 15:50 小指令 阅读(392) 评论(0) 推荐(0)

2011年8月26日

c#调用F#中的lambda表达式

摘要: c#调用F#自定义的库,可能会经常遇到F#函数采用了Lambda作为函数参数,在C#中lambda参数被生成了FSharpFunc<T1, TResult>>> 对象,不能直接用C#中的lambda表达式作为实参来调用,我们只有通过把lambda表达式转换为FSharpFunc<T1, TResult>>> 对象,以下就是把lambd表达式转换为FSharpFunc对象的方法:using System;using System.Collections.Generic;using System.Linq;using System.Text;usin 阅读全文

posted @ 2011-08-26 21:31 小指令 阅读(2280) 评论(0) 推荐(1)

2011年7月6日

Lambda表达式 笔记(二)泛型T运算符

摘要: 泛型T不能直接进行+,-,*,/等运算符运算,可以先把操作数转换为dynamic ,在进行计算,完了了在转换回去。这种方法速度特别慢,特别是大量运算时,一般接收不了,我们把类做成泛型,一般希望做成以后经常用的库,性能肯定是有要求的。1 public T Add(T a, T b)2 {3 dynamic da = a;4 dynamic db = b;5 return (T)(da + db);6 } 后来想到了采用委托+Lambda,这种方法复杂,在不失灵活性的情况下,性能比采用dynamic效率高很多,委托定义一般利用System.Func,委托实例采用Lambda表达式,这种方式特别简. 阅读全文

posted @ 2011-07-06 17:08 小指令 阅读(503) 评论(0) 推荐(0)

2011年7月4日

Lambda表达式 笔记(一)

摘要: “Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,或者可以这么说吧,就是在函数里面定义函数,这在集合类型和linq里面很有用,比如List<T>.Sort函数里的比较器,用Lambda 表达式就非常简洁,举例如下:public class Person{ public int Id { get; set; } public string Name { get; set; } public override string ToString() { return Id.ToString() + "," + Name; } } Lambda表达式作为比较 阅读全文

posted @ 2011-07-04 21:32 小指令 阅读(219) 评论(0) 推荐(0)

2011年7月2日

Linq to SQL笔记(二)

摘要: 今天用Linq给数据表批量添加数据时,发现速度确实比ADO.net慢了不少,后面调出DataContext.Log记录一看,发现是一行一个命令添加数据,那速度当然慢了了,差不多慢了20倍左右,Linq的本质就是通过映射类等把c#等.net语言解释为SQL语句,我按照这个思路自己把程序语言解释为SQL,听说可以使用System.Linq.Expression里面的方法解释成SQL语句,但是我看了网上的代码,看不太明白,我就按自己想法封装了一个Insert方法,速度接近ADO.net有不对的请指正。 阅读全文

posted @ 2011-07-02 17:34 小指令 阅读(542) 评论(0) 推荐(0)

导航