标签:style blog http color 使用 io strong ar
其实提高代码的重用,有几个途径
a.继承
b.工具方法
c.使用委托
a,b两点都很容易理解,说一下"c"这一点,举个DataContext事务的例子
using(var context = new DataContext()) { context .BeginTransaction(); try { context.User.GetUser(); context.User.add(new User{name="xian"});
context.User.add(new User{name="hong"}); context.Commit(); } catch { context.Rollback(); } }
以上代码很常见吧,是不是每个使用事务地方都需要这么写,其实这个时候我们可以利用委托来实现
public class DbInvoker { public void Transaction(Action<DataContext> aciton) { using (var context = new DataContext()) { context.BeginTransaction(); try { aciton(context); context.Commit(); } catch { context.Rollback(); } } } }
以后用到事务的地方这样调用就行了
DbInvoker.Transaction(context=>{ context.User.Add(new User{name="xian"}); context.User.Add(new User{name="hong"}); });
是不是方便了许多.
其中:BeginTransaction、Commit、Rollback 为固定操作;
而context.User.GetUser(); context.User.add(new User{name="xian"});
context.User.add(new User{name="hong"});
为固定操作。
aciton(context); 可以这样理解相当于一个无返回值,参数为Context方法。
Public void ExecutAction(Context content)
{
}
C# 通过Action委托提高代码的重用,布布扣,bubuko.com
标签:style blog http color 使用 io strong ar
原文地址:http://www.cnblogs.com/zfanlong1314/p/3908565.html