c#如何让递归函数输出多个结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何让递归函数输出多个结果相关的知识,希望对你有一定的参考价值。

参考技术A

  因为递归方法的特殊性,很可能不方便使用out/ref等参数,你可以使用Tuple<>元组作为方法返回值。

  举例:Tuple<int,string,bool> t将声明一个t,其拥有Item1,Item2,Item3公有只读属性,用于分别存储一个int,一个string,一个bool值。

  注意:

    Tuple最小支持到Tuple<T1>,最大支持到TRest(第八个),如果要返回的结果超过8个请Tuple<T1..T7,Tuple<T9....>>嵌套。或者自定义一个类或结构用于描述返回结果。

    Tuple的值是在构造方法中确定的,且其为readonly,一旦赋值(构造)将不能更改。


  最后,除了使用Tuple和自定义结构/类,你还可以使用dynamic配合匿名类作为返回。

  下述方法返回一个有value1和value2属性的动态对象,其类型是匿名的。

  dynamic DoSomething() return new value1=123,value2="hello";

  获取具体的值: DoSomething().value2将得到字符串“hello”,value1将得到整数123。

  注意,dynamic是运行时绑定的,编译器不会对.value1和.value2做编译检查,所以写错了也只能在调试/运行时发现。

本回答被提问者和网友采纳

以上是关于c#如何让递归函数输出多个结果的主要内容,如果未能解决你的问题,请参考以下文章

如何使用递归函数(C#,D&C)避免非常大的数字的溢出乘法

音视频开发之旅(24) 算法系列-快速排序

递归 C# 函数从 for 循环内部返回 - 如何转换为 F#?

如何在 Python 中存储递归函数的输出?

递归函数实例助理解

函数的定义与调用递归