C# 你可能没这样用过(逗逼方式) return

  本文纯属园友交流之用,你能写去多少种  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 }


3.直接接收一个方法执行的结果并返回结果

1 public int CalcAdd(int x, int y)
2 {
3 return CalcNum(x, y) + 100;//执行一个方法返回的结果与整形相加
4 }


4.在Switch里面使用

 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 }


6.与TryFinally结合使用

 1  public void TryFinally()
2 {
3 try
4 {
5 return;
6 }
7 finally
8 {
9 Console.WriteLine("就算你返回了!我还是要打印,我就是想在打一会!");
10 }
11 }

7.这个可能一般人没用过,我在 http://www.cnblogs.com/NatureSex/archive/2011/12/07/2278575.html 随笔提到过

[DllImportAttribute("user32.dll", EntryPoint="SetCursorPos")]
[return:MarshalAsAttribute(UnmanagedType.Bool)]
//告执行如何封送返回参数
//主要指定用于在托管代码与非托管代码之间转换数据类型的封送处理行为
public static extern bool SetCursorPos(int X, int Y);

 8.临时补充的一个

 1 public IEnumerable<int> 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 语句是一个必不可少的部分,用好了它是利器,用不好它是凶器(啊哈,别想歪了)。
就看你了不了解它做事的行为,以及它能做什么事情,才能发挥它到最大用去。

如果觉得本文适合您且对您有帮助,请一定记得点推荐哟!



作者: JasNature
出处: http://NatureSex.cnblogs.com
      本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
      如果本文有什么不妥或者错误的地方,请您一定要在评论中指出,以免误人子弟!非常感谢您的不吝赐教!
原文地址:https://www.cnblogs.com/NatureSex/p/2285549.html