标签:
分分搞懂c#中的委托;
不说废话,不来虚的概念,不管代码是否有意义,看我的优化之路,你会理解委托了;
源代码1
public class test { //我们不管代码是否有意义,我们直接看代码重构和一步步优化的过程 int flage = 1; public void show(int a) { if (flage == 1) { do1(a); } else if (flage == 2) { do2(a); } else if (flage == 3) { do3(a); } else if (flage == 4) { do4(a); } else { } } public void do1(int val) { } public void do2(int val) { } public void do3(int val) { } public void do4(int val) { } }
优化一:
public enum flag { a = 1, b = 2, c = 3, d = 4 } public class test2 { //我们不管代码是否有意义,我们直接看代码重构和一步步优化的过程 int flage = 1; public void show(int a, flag f) { switch (f) { case flag.a: do1(a); break; case flag.b: do2(a); break; case flag.c: do3(a); break; case flag.d: do4(a); break; } } public void do1(int val) { } public void do2(int val) { } public void do3(int val) { } public void do4(int val) { } }
优化二(委托“现身了”)
public delegate void mydelegate(int val); public class test3 { public void show(int a,mydelegate de ) { de(a); } public void do1(int val) { } public void do2(int val) { } public void do3(int val) { } public void do4(int val) { } } class Program { static void Main(string[] args) { test3 t = new test3(); t.show(12,t.do2); } } }
哈哈哈,这下明白了撒!
现在我们才来总结概念!
标签:
原文地址:http://www.cnblogs.com/mc67/p/5068145.html