随笔分类 - 其它
摘要:.net进行3.5时代后,各种新的语言特性相继而来,今天主要说的是Lambda表达式带给我们的是什么?说lambda肯定离不开匿名方法,说匿名方法肯定离不开委托,其实,你可以把这三个东西看作是一个事物的不同发展阶段,他们也标志着.net framework的发展史:.net frameworks 1.x 委托.net frameworks 2.x 匿名方法来实现委托.net frameworks 3.x lambda表达式来实现委托委托,delegate你不要简单的说,“把方法当方法的参数传递给一个方法”,说实话,过去很长一段时间我也是局限在这个概念上的,但真的静下来想想,可能并非这样,...
阅读全文
摘要:回到目录首先,非常感谢赵老大的CodeTimer,它让我们更好的了解到代码执行的性能,从而可以让我们从性能的角度来考虑问题,有些东西可能我们认为是这样的,但经理测试并非如何,这正应了我之前的那名话:“机器最能证明一切”!费话就不说了,看代码吧: 1 /// <summary> 2 /// 执行代码规范 3 /// </summary> 4 public interface IAction 5 { 6 void Action(); 7 } 8 9 /// <summary> 10 /// 老赵的性...
阅读全文
摘要:有时我们习惯上把基类中属性的赋值权限放在它的构造方法上,这样给我们感觉更直接,也更安全,这也体现了面向对象的封装性,即将不想开放的东西隐藏到类内部,当进行.net3.5时代后,属性的定义显得更加美观和合理,看下面是几种具有不同读写权限的属性。 1 /// <summary> 2 /// 完全公开 3 /// </summary> 4 public string ErrorMessage { get; set; } 5 /// <summary> 6 /// 读完全公开,但写操作约束在了子类 7 ...
阅读全文
摘要:回到目录委托,一个不错的东西,.net中的委托用着挺爽,它的重要性以至于微软把它单拿出来,定义了几个现成的委托,如,Func和Action,既然人家把最特殊的委托签名拿 出来了,所以咱们就不自己去定义了,就用Func和Action委托去讲一个如何定义他们的实例吧,呵呵。第一 规规矩矩定义方法method1 /// <summary>2 /// 与Func<string>相同的方法签名3 /// </summary>4 /// <returns></returns>5 static string StandardFun...
阅读全文
摘要:解耦,不仅只是对程序的扩展性而言,它可能还是你使用你的程序从一个层面向另一个层面提高的基础,请认真对待这个词语“解耦”。我相信,它将会成为与“SOA”,“分布式”,“云计算”,“KV存储”,“高并发”一样的热门的东西,我确信这点。以后,我将会继续关注这个词语“解耦”。今天主要是讲”代码之美“的一个话题,利用构造方法使你的对象进行一个可供注入的接口,这就是IOC里面注入的一种方式,即”构造器注入“。 1 /// <summary> 2 /// 统一实体 3 /// </summary> 4 public class EntityBase 5 { 6 7 ...
阅读全文
摘要:一直在看“代码之丑”这个文章系列,心想,为得不来个“代码之美”呢,呵呵,今天做项目时,认为我的验证方法代码逻辑比较漂亮,所以就摘出来分享一下吧,今天讲的是方法的重载,事实上主要是说一下构造方法的重载。构造方法不同于其它方法,它没有返回值,可以有参数列表,可以是public,private,protected,internal等去修饰它,可以是加了static的类型构造方法,也可以是一个实例构造方法,可以自己去重载自己的构造方法可以去重载基类的构造方法美1:重载自己 /// <summary> /// 代参数的 /// </summary> ...
阅读全文
摘要:事情是这样的,一个需求,根据当前登陆用户的角色,显示指定的信息列表。说明:角色与信息的状态有关系,如管理员,可以看到状态为1和2的记录,而普通用户只能看到状态是1的记录,对于这种需要,我们可以设置一张表来实现,当然直接写在程序中也可以Role_Status_R表如下:RoleID int Not nullStatus varchar(200) [可以使用int类型,但要求你的值必须是通过位移运算产生的]数据库结构如下:当然也可以设计一个字典来维护它们的关系,但不利于以后扩展,建议使用数据库方式,字典方式代码如下:1 //用户角色与状态关系字典 2 ...
阅读全文
摘要:回到目录众所周知,自从.net中出现了特性(attribute)之后,代码变得更加简洁,可读性更强了,今天主要说一下Conditional特性,Conditional它主要是约束你的代码段在哪种条件下进行执行,我们今天主要针对DEBUG和TRACE这两个条件约束,它们可以当作是Conditional特性的输入参数,形式如下:1 [Conditional("DEBUG")]2 protected static void LogDebugInfo()3 {4 //在debug模式输出一些调试信息5 Con...
阅读全文
摘要:在使用Stream对象,transactionScop,socket对象时,我们往往会发现在它的内部有一个Dispose()方法,它是干什么用的呢?这要从微软的代码托管开始说起,所谓托管,就是不需要程序员自己去干涉内部分配与销毁,从对象的建立到销毁的过程完全由.net来帮我们去实现。.net为提供的类库有两种,即“托管类库”和“非托管类库”,像自定义的类,值类型等,它一般来说,执行的结果可以预知,这时.net帮助我们去管理对象;而如果你要实现,网络上的传递,文件的传递,向服务器发包这些操作,都是系统未知的,即不知道什么时候能执行结束,这时,它们的对象释放,则需要自己去实现,例如:1 using
阅读全文
摘要:返回目录在简单工厂的讲解中,出现了很多问题,我们对象统一行为抽象出一个接口(或者抽象类)之后,再根据你传入的类型进行创建实例,这只适合于你有固定行为的场合,当你要实现接口的类型处于不定数时,则不适合使用简单工厂模式,而应该用工厂方法了。适用场合:子类有统一的操作行为子类的数量不固定,随时可能有新的功...
阅读全文
摘要:返回目录 简单工厂模式Simple Factory根据提供给它的数据,返回一个类的实例。通常它返回的类都有一个公共的父类(或者接口对象)。简单工厂的作用是实例化对象,而不需要客户了解这个对象属于哪个具体的子类。简单工厂实例化的类具有相同的接口或者基类,在子类比较固定并不需要扩展时,可以使用简单工...
阅读全文
摘要:返回目录单件模式(Singleton)要求一个类有且仅有一个实例,并且提供了一个全局的访问点。从概念上来研究一下它的实现,不考虑线程安全 1 public sealed class Singlton 2 { 3 static Singlton instance = null; 4 p...
阅读全文
摘要:在我上一篇文章发表后,收到了很多博友的回复,其中有一位博友提了一个问题,TestBase 继承了ITest是多余的,我认为,我有必要再写一篇文章来说明一下,TestBase为什么要继承ITest,当然各位也可以再次发表自己的看法。 1 /// <summary> 2 /// 数据统一接口规范 3 /// </summary> 4 interface ITest 5 { 6 /// <summary> 7 /// 插入方法 8 /// </summary> 9 void Insert();10...
阅读全文
摘要:这个问题困扰了我很久,很觉得设计的不完善,终于在今天把它彻底解决了,其实就是一个C#里的基础知识问题,主要涉及到了,接口,抽象类,接口继承,类继承,多态等知识。事件是这样的,我有一个统一接口规范的接口,它可以由linq to sql,ado.net和ef等相关数据源去实现(只是举个例,不是实际中的代码) 1 /// <summary> 2 /// 数据统一接口规范 3 /// </summary> 4 interface ITest 5 { 6 /// <summary> 7 /// 插入方法 8 /// ...
阅读全文
摘要:标题有有意思,说是再次看WCF,意思是说之前也简单的看过,但没有用到实际项目中来,这一次,准备大规模的体验一下WCF。 今天主要是一个例子,从用户服务器,根据指定用户ID,还回它的用户实体,即,用户模块的代码是写好的,可以供其它项目,业务去调用,提供一个开放的服务平台,先看一下结构图 在WCF Se
阅读全文
摘要:回到占占推荐博客索引 本系列文章主要是我在工作中,遇到一些不能主观判断的问题,最后在电脑上去证明我的理解是否正确,这也是题目“将不确定变成确定”的由来。 记得我在上大学时,老师说过一句话:“机器最能证明一切”,这句话现在看来,确实很经典。 将不确定变为确定系列~目录(“机器最能证明一切”) 第一回
阅读全文
摘要:在写完面向服务架构~全局配置文件也面向服务了与面向服务架构~全局配置文件也面向服务了~续(对性能的优化)之后,觉得程序还是有可以优化的地方,在我上一篇文章中也提到了cache,所以今天这一篇主要把cache加入到项目中来,以便最大程度上提高程序的性能。 1 /// 2 /...
阅读全文
浙公网安备 33010602011771号