分类

链接

2025 年 8 月
 123
45678910
11121314151617
18192021222324
25262728293031

近期文章

热门标签

新人福利,免费薅羊毛

c#自定义异常处理(二)

在另一篇文章里,我说了.NET异常处理机制中的自定义异常处理,今天我要说的是另外一种异常处理。在写处理程序异常的过程中,可能会遇到各种不同类型的异常,而已要抛出不同的人性化提示,如果统一抛出一样的提示,就不人性化了,我们一般的处理方法 是:public void Update(){       try       {   }       catch(SqlExcetion ex)       {              throw new excetion(ex);        }        catch(IOExcetion ex)         {                  throw new excetion(ex);          }          /...

.NET 暂无评论 阅读(3,513)

C#自定义异常处理(一)

在C#中所有的异常类型都继承自System.Exception,也就是说,System.Exception是所有异常类的基类. 总起来说,其派生类分为两种:1. SystemException类: 所有的CLR提供的异常类型都是由SystemException派生。2. ApplicationException类: 由用户程序引发,用于派生自定义的异常类型,一般不直接进行实例化。下面看看是如何来定义异常类,以及自定义异常类如何来触发及捕获.[Serializable]public class PayOverflowException:ApplicationException{/// <summary>/// 默认构造函数/// </summary>pu...

.NET 评论(3) 阅读(5,705)

Linq to entity多表查询如何返回查询结果

1、定义一个新的类别,类别包含了多个表的属性public class AB   {      public int a_id;      public string a_name;      public int b_id;      public string b_name;         }2、使用视图,和上面基本一样 其实就是使用SQL语句 示例: select a.id,a.name,b.id ,b.name from a join b on a.id=b.id3、使用储存过程,直接返回结果集 同上。4、使用匿名对像,返回IQueryable,例: public IQueryable GetAllList()      {                var query = from a in tb_a join b...

.NET 评论(5) 阅读(15,000)

这就是程序员啊!哎

想做你的code

Others 评论(4) 阅读(5,773)

深入浅出C#委托与事件系列(八)

委托和方法的异步调用通常情况下,如果需要异步执行一个耗时的操作,我们会新起一个线程,然后让这个线程去执行代码。但是对于每一个异步调用都通过创建线程来进行操作显然会对性能产生一定的影响,同时操作也相对繁琐一些。.Net中可以通过委托进行方法的异步调用,就是说客户端在异步调用方法时,本身并不会因为方法的调用而中断,而是从线程池中抓取一个线程去执行该方法,自身线程(主线程)在完成抓取线程这一过程之后,继续执行下面的代码,这样就实现了代码的并行执行。使用线程池的好处就是避免了频繁进...

.NET 暂无评论 阅读(1,986)

深入浅出C#委托与事件系列(七)

委托中订阅者方法超时的处理订阅者除了可以通过异常的方式来影响发布者以外,还可以通过另一种方式:超时。一般说超时,指的是方法的执行超过某个指定的时间,而这里我将含义扩展了一下,凡是方法执行的时间比较长,我就认为它超时了,这个“比较长”是一个比较模糊的概念,2秒、3秒、5秒都可以视为超时。超时和异常的区别就是超时并不会影响事件的正确触发和程序的正常运行,却会导致事件触发后需要很长才能够结束。在依次执行订阅者的方法这段期间内,客户端程序会被中断,什么也不能做。因为当执行订阅者方法时...

.NET 暂无评论 阅读(2,030)

深入浅出C#委托与事件系列(六)

获得多个返回值与异常处理现在假设我们想要获得多个订阅者的返回值,以List<string>的形式返回,该如何做呢?我们应该记得委托定义在编译时会生成一个继承自MulticastDelegate的类,而这个MulticastDelegate又继承自Delegate,在Delegate内部,维护了一个委托链表,链表上的每一个元素,为一个只包含一个目标方法的委托对象。而通过Delegate基类的GetInvocationList()静态方法,可以获得这个委托链表。随后我们遍历这个链表,通过链表中的每个委托对象来调用方法,这样就可以分别获得每个方法的返回值:...

.NET 暂无评论 阅读(2,256)

深入浅出C#委托与事件系列(五)

果你看过了《深入浅出C#委托与事件系列》,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器、异常处理、超时处理和异步方法调用等内容。为什么要使用事件而不是委托变量?在 C#中的委托和事件 中,我提出了两个为什么在类型中使用事件向外部提供方法注册,而不是直接使用委托变量的原因。主要是从封装性和易用性上去考虑,但是还漏掉了一点,事件应该由事件发布者...

.NET 暂无评论 阅读(1,974)

深入浅出C#委托与事件系列(四)

通过前面的学习,我们不仅疑惑:为什么.Net Framework 中的事件模型和上面的不同?为什么有很多的EventArgs参数?在回答上面的问题之前,我们先搞懂 .Net Framework的编码规范:? 委托类型的名称都应该以EventHandler结束。 ? 委托的原型定义:有一个void返回值,并接受两个输入参数:一个Object 类型,一个 EventArgs类型(或继承自EventArgs)。 ? 事件的命名为 委托去掉 EventHandler之后剩余的部分。 ? 继承自EventArgs的类型应该以EventArgs结尾。 再做一下说明:1. 委托声明原型中的Object类型...

.NET 暂无评论 阅读(1,956)

深入浅出C#委托与事件系列(三)

什么是事件?EVENT?点击事件?加载事件?一连串的模糊的概念冲击着我们弱小的脑袋那我们首先来看一下比较正统的感念吧:事件是类在发生其关注的事情时用来提供通知的一种方式。事件的发生一般都牵扯2个角色事件发行者(Publisher):一个事件的发行者,也称作是发送者(sender),其实就是个对象,这个对象会自行维护本身的状态信息,当本身状态信息变动时,便触发一个事件,并通知说有的事件订阅者。事件订阅者(Subscriber):对事件感兴趣的对象,也称为Receiver,可以注册感兴趣的事件,在事件发行者触发...

.NET 暂无评论 阅读(1,654)