吴佳鑫的个人专栏

当日事当日毕,没有任何借口

导航

2012年1月16日

分部类和分部方法

摘要: 在面向对象的“封装闭合性”开发原则中,一向提倡的是把独立的功能封装在一个类里面的!但从Visual Studio 2005开发,系统提供了一个分部类的开发方式一直受到争议,很多人认为把同一类的功能分布不同的文件中,是打破了“封装闭合原则”,一个类的功能变得难以管理,大多数人都是在无奈的情况下才使用到分部类的方式。但在winFrom类、页面类、DataSet里面你经常可以发现分部类的身影,当你用到Entity Framework的时候,你会发现每个映射生成的对象都是使用分部类的方式生成的,分部类似乎早已派上用场。分部类究竟有什么好处,下面为大家一一揭露。一、分部类根据微软的定义,分部类就是“将类 阅读全文

posted @ 2012-01-16 23:37 _eagle 阅读(360) 评论(0) 推荐(0) 编辑

C# 4.0 新特性dynamic、可选参数、命名参数等

摘要: 转自:http://www.cnblogs.com/yukaizhao/archive/2010/05/24/csharp-40-dynamic-optional-argument.html1.dynamic ExpandoObject熟悉js的朋友都知道js可以这么写 :?123var t = new Object(); t.Abc = ‘something’; t.Value = 243;现在这个js动态语言的特性,我们也可以在c#中使用了,前提是将一个变量声明为ExpandoObject类型。如下例:?12345678static void Main(string[] args) { d 阅读全文

posted @ 2012-01-16 22:59 _eagle 阅读(262) 评论(0) 推荐(0) 编辑

关于.net 4.0新增的 Tuple类

摘要: 引:在很多场合的,我们需要一个方法返回多个值,我们有多种方式来实现。1.使用全局变量2.使用out 和 ref 参数3.把多个返回值封装为 struct 或 class4.使用Tuple.net 4.0在基类库中添加了一个有趣的 Tuple类,它代表一个有序的N元组。所谓元组,其实就是“数值对”,比如以下就是一个3元组:(100,200,300)可以调用Tuple.Create静态方法或使用new 关键字直接创建一个Tuple对象。 .net 类库中定义了拥有1-7个泛型参数的泛型Tuple.使用Tuple对象作为方法返回值,可以很容易地包含多个结果。namespace DivideUseTu 阅读全文

posted @ 2012-01-16 22:50 _eagle 阅读(483) 评论(0) 推荐(0) 编辑

泛型的典型应用

摘要: 本示例程序的功能是找出数组中的最大值和最小值首先,定义一个泛型结构Pair保存这个值: public struct Pair<T> { public T Max; public T Min; }接着,设计一个泛型类MaxMin,提供一个公有的GetMaxMinVauleFromArray方法封装“查找数组中最大值和最小值算法。public class MaxMin<T> where T : IComparable<T>{//处理数据,获取最大值最小值public static Pair<T> GetMaxMinVauleFromArray(T[] 阅读全文

posted @ 2012-01-16 16:35 _eagle 阅读(515) 评论(0) 推荐(0) 编辑

谈谈Nullable<T>的类型转换问题

摘要: 转自:http://www.cnblogs.com/artech/archive/2011/03/17/nullabletype.html本篇文章讨论可空值类型(Nullable<T>)的转换,却确地说是如何将一种类型的值对象转换成相应的可空值。这来源于今天我们的一个成员遇到的一个小问题,我经过一些整理写了这篇文章。虽然没有什么技术含量可言,也希望对某些读者带来帮助。目录一、四种典型的值类型转换方式二、当类型转换遭遇Nullable<T>三、将基于Nullable<T>的类型转换实现在扩展方法中四、进一步完善扩展方法ConvertTo五、谈谈Nullable 阅读全文

posted @ 2012-01-16 15:11 _eagle 阅读(276) 评论(0) 推荐(0) 编辑

.NET 4.0 的BigInteger和Complex类

摘要: .NET4.0 Beta2中提供了新的System.Numerics命名空间,对应于System.Numerics.dll。该命名空间下就两个类BigInteger和Complex,我们来简单了解下这两个类的用法。BigInteger:任意大小的带符号整数,可以表示任意大小的整数1.Int64, SByte, UInt16, UInt32, and UInt64这些都有一个MinValue和MaxValue属性。而BigInteger没有这两个属性,因为它没有大小限制。2.不可变的类型.3.由于他没有大小限制,理论上当它足够大的时候会出现OutOfMemoryException异常.BigIn 阅读全文

posted @ 2012-01-16 14:40 _eagle 阅读(1069) 评论(0) 推荐(0) 编辑

如何保护自己的代码不被利用

摘要: Reflector 是一个可以反编译.net 程序集的工具。我们可以用 VS2010 附带的 Dotfuscator Software Services 来保护我们的程序集不给反编译利用。 阅读全文

posted @ 2012-01-16 13:52 _eagle 阅读(273) 评论(0) 推荐(0) 编辑