02 2013 档案
摘要:在win8中有时候需要对数据进行加密和解密的话,就可以用Windows.Security.Cryptography.DataProtection命名空间下的DataProtectionProvider类。DataProtectionProvider当中有两个构造函数:View Code // 摘要: // 用于解密操作的构造函数。 public DataProtectionProvider(); // // 摘要: // 用于加密操作的构造函数。 // // 参数:...
阅读全文
摘要:事件:"在发生其他类或对象关注的事情时,类或对象可以通过事件通知他们。发送(或引发)事件的类称为"发行者",接受(或处理)事件的类称为"订户"。"上面这句话描述了事件的最本质功能,用于底层通知上层。正常的架构设计都是分层结构,而分层结构有一点很重要的就是底层对于上层的无知,当初这样设计是为了解耦,为了更好的面向对象,但是带来的问题是如何解决自下而上的信息流。因为自上而下的调用,我们通过接口就可以搞定一切了,上层可以看到下层提供的服务接口,那么正常的调用可以保证一路向下,底层调用中层提供的服务接口,中层的服务接口的实现中调用了底层的服务
阅读全文
摘要:什么是匿名方法?匿名方法是C#2.0引入的一个新特性,它允许开发者声明自己的函数代码而无须使用委托函数。C#为委托提供一种机制,可以为委托定义匿名方法,匿名方法没有名称,编译器会定指定一个名称,匿名方法中不能使用跳转语句跳转到该匿名方法的外部,也不能跳转到该方法的内部。也不能在匿名方法外部使用的ref和out参数。通过使用匿名方法,可以不必创建单独的方法,因此减少了实例化委托所需的编码系统开销。例如,如果创建方法所需的系统开销是不必要的,则指定代码块(而不是委托)可能非常有用。什么时候该使用匿名方法1.需要一个临时方法,该方法使用次数极少;2.这个方法的代码很短,甚至可能比方法声明都短的情况下
阅读全文
摘要:有的时候,我们想要调用一个委托,但同时可以执行多个方法(自定义事件中最为常见),比如,一个工作文档生成之后,系统要将生成文档日志,而且还要被保存到数据库中,对于以上二个操作,如果只想调用一个委托,就可以顺序完成,那么使用多播委托,就可以实现。如果调用多播委托,就可以按顺序连续调用多个方法。为此,委托的签名就必须返回 void (否则,返回值应送到何处?)(当委托只包含一个方法的时候,其返回类型的声明可以参照所封装的方法,不一定必须是void)。实际上,如果编译器发现某个委托返回 void ,就会自动假定这是一个多播委托。多播委托(MulticastDelegate)提供了一种类似于流水线式的钩
阅读全文
摘要:我们都应该清楚,在使用委托之前,先要定义一个委托类型,如下所示:delegate int MyDelegate(int a,int b);MyDelegate md =null;既然叫做委托类型,就说明MyDelegate实际上是一个类,上面的写法只是一种简单的缩略写法,实际上,我们自己定义的委托,都是继承自System.MulticastDelegate类的.可以发现还存在4个方法,一个是构造函数。MulticastDelegate类MultiDelegate类是一个特殊类(Special Class),和System.Delegate类一样,该类只能够被编译器以及内置的工具类所继承,我们自
阅读全文
摘要:委托可以这样来理解:它是一种数据类型,和引用类型类似,不过和一般的类相比,委托的实例不是在堆中的数据,而是一个方法。委托类似于引用类型,和C++中的函数指针很相似,但是不同之处就在于,它不是存在于堆中的。正是有了委托我们才得以将函数打包成一个变量进行传递。这就是说,我们不止能够将数据作为参数传递,还可以将一个函数作为参数进行传递,这样就可以在需要的时候方便的进行控制的反转(Ioc,控制反转)。代码下载地址下面写一个简单的实例进行理解:两个数求其中的较大值、较小值。 /// /// 两个数求较大值 /// /// ///...
阅读全文