本文纯属园友交流之用,你能写去多少种 return 的使用场景,注意是使用形式。(欢迎补充。。)
C# 中 return 关键子字是我们用的再常用不过的一个语法了,然而你用到过他们所有的表现形式吗?
下面我就来一一演示它出现的各种场合,仅限于个人能想到的,还是那句话,强烈欢迎补充。。共同进步。1.第一种我们常见的格式
1 public int CalcNum(int x, int y) 2 { 3 return x * y;//返回一个整形值 4 }
2.立即结束方法并返回void类型
1 public void CalcDiv(int x, int y,ref int result) 2 { 3 if (x <= 0) return;//立即返回操作,下面不再执行 4 result = x / y; 5 }
1 public int CalcAdd(int x, int y) 2 { 3 return CalcNum(x, y) + 100;//执行一个方法返回的结果与整形相加 4 }
1 public string SwitchFun(int swh) 2 { 3 switch (swh)//使用return直接返回,而不是先break;然后在返回 4 { 5 case 1: 6 return "abc"; 7 case 2: 8 return "def"; 9 case 3: 10 return "hij"; 11 default: 12 return "default"; 13 } 14 }
5.在递归下面使用,(好像与第三种重复说明)
1 public int Foo(int n)//递归求斐波那契数列 2 { 3 if (n <= 2) 4 { 5 return 1; 6 } 7 else 8 { 9 return Foo(n - 1) + Foo(n - 2); 10 } 11 }
1 public void TryFinally() 2 { 3 try 4 { 5 return; 6 } 7 finally 8 { 9 Console.WriteLine("就算你返回了!我还是要打印,我就是想在打一会!"); 10 } 11 }
7.这个可能一般人没用过,我在 随笔提到过
[DllImportAttribute("user32.dll", EntryPoint="SetCursorPos")] [return:MarshalAsAttribute(UnmanagedType.Bool)] //告执行如何封送返回参数 //主要指定用于在托管代码与非托管代码之间转换数据类型的封送处理行为 public static extern bool SetCursorPos(int X, int Y);
8.临时补充的一个
1 public IEnumerable GetSider() 2 { 3 for (int i = 0; i < 100; i++) 4 { 5 if (i % 2 == 0) 6 { 7 yield return i;//返回满足条件的并放入迭代器中 8 } 9 } 10 }
这个是我目前能想到的!可能遗忘看了一些!欢迎补充呀!
在很多编程语言中 return 语句是一个必不可少的部分,用好了它是利器,用不好它是凶器(啊哈,别想歪了)。
就看你了不了解它做事的行为,以及它能做什么事情,才能发挥它到最大用去。