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#如何让递归函数输出多个结果的主要内容,如果未能解决你的问题,请参考以下文章