可以实现从一个方法返回多个不同类型的值
1、使用元组(Tuple):可以返回一个包含多个值的元组。元组可以是匿名的(使用括号语法)或者使用Tuple类。
2、使用out参数:在方法参数中使用out关键字,可以在方法内部为这些参数赋值,从而实现返回多个值。
3、使用自定义类或结构体:定义一个类或结构体来封装需要返回的多个值,然后返回这个类型的实例。
4、使用值元组(ValueTuple):这是C# 7.0引入的,提供了更简洁的语法和更好的性能。
下面分别举例说明:
- 使用元组(Tuple)
使用匿名元组(C# 7.0及以上)
public (int, string) GetMultipleValues()
{
int number = 10;
string text = "Hello";
return (number, text);
}
// 调用方法
var result = GetMultipleValues();
Console.WriteLine($"Number: {result.Item1}, Text: {result.Item2}");
给元组成员命名(推荐)
public (int Number, string Text) GetMultipleValues()
{
int number = 10;
string text = "Hello";
return (number, text);
}
// 调用方法
var result = GetMultipleValues();
Console.WriteLine($"Number: {result.Number}, Text: {result.Text}");
2. 使用out参数
public void GetMultipleValues(out int number, out string text)
{
number = 10;
text = "Hello";
}
// 调用方法
int num;
string str;
GetMultipleValues(out num, out str);
Console.WriteLine($"Number: {num}, Text: {str}");
// 从C# 7.0开始,可以在调用时直接声明变量
GetMultipleValues(out int num, out string str);
Console.WriteLine($"Number: {num}, Text: {str}");
3. 使用自定义类或结构体
public class Result
{
public int Number { get; set; }
public string Text { get; set; }
}
public Result GetMultipleValues()
{
return new Result { Number = 10, Text = "Hello" };
}
// 调用方法
var result = GetMultipleValues();
Console.WriteLine($"Number: {result.Number}, Text: {result.Text}");
4. 使用值元组(ValueTuple)
实际上,在C# 7.0中引入的元组就是值元组,语法与上面元组的例子相同。值元组是结构体,而旧的Tuple是类,所以值元组在性能上更有优势。
总结
如果需要返回多个值,并且这些值只是临时使用,不需要在多个方法间共享,使用元组(尤其是命名元组)是最简洁的方式。
如果方法需要返回多个值,并且这些值在逻辑上属于一个整体,可以考虑创建一个自定义类或结构体。
out参数在某些情况下也很有用,尤其是在需要返回多个值的同时还需要返回一个状态(比如TryParse模式)时。
本文来自博客园,作者:lyc6921,转载请注明原文链接:https://www.cnblogs.com/lyc6921/p/19142917
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/937365.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!