来源:https://mp.weixin.qq.com/s/LqFX32Cb4YeEQMOBYr23jQ
在遇到执行方法需要返回多个值的情况时(比如去数据库查一个值,要同时返回数据库查询耗时),可以使用以下方式实现:
1、使用 Tuples
C# 中的元组提供了一种返回多个值的方法,而无需定义新的类或结构。让我们浏览一个示例,该示例展示了如何使用元组来计算和返回两个数字的总和和乘积:
public (int Sum, int Product) Calculate(int a, int b) { return (a + b, a * b); } var result = Calculate(2, 3); Console.WriteLine($"Sum: {result.Sum}, Product: {result.Product}");
2、使用 Out
在某些情况下,有必要在方法的主返回值旁边返回其他信息。这就是 C# 中的参数被证明是有价值的地方。让我们浏览一个实际示例,该示例涉及一个分析日期字符串并使用参数返回对象的方法:outDateTimeout
public bool TryParseDate(string dateString, out DateTime date) { return DateTime.TryParse(dateString, out date); } if (TryParseDate("2024-02-19", out DateTime resultDate)) { Console.WriteLine($"Parsed Date: {resultDate.ToShortDateString()}"); } else { Console.WriteLine("Invalid Date"); }
3、使用 ValueTuple
C# 中的 ValueTuple 为处理元组操作(包括解构)提供了增强的多功能性。让我们深入研究一个实用的例子,通过创建一个函数来演示 ValueTuple 的实用性,该函数提供结构中几何形状的尺寸:ValueTuple
public (int, int) GetDimensions() { return (1024, 768); } var (width, height) = GetDimensions(); Console.WriteLine($"Width: {width}, Height: {height}");
4、返回自定义类或结构
在处理错综复杂的互连数据集时,创建自定义类或结构可以增强代码的清晰度和组织性。让我们深入研究一个示例,在该示例中,我们定义了一个自定义类,该类被命名为封装计算结果:OperationResult
public class OperationResult { public int Sum { get; set; } public int Product { get; set; } } public OperationResult PerformCalculation(int a, int b) { return new OperationResult { Sum = a + b, Product = a * b }; } var result = PerformCalculation(5, 4); Console.WriteLine($"Sum: {result.Sum}, Product: {result.Product}");
5、使用 Ref Return 和 Ref Locals
在需要直接修改数据而不进行不必要的复制的情况下,C# 提供了 ref 返回和 ref 局部变量的概念。让我们来探讨一个实际示例,该示例演示了如何使用 ref returns 在数组中查找和返回对特定名称的引用:
public ref string FindName(string[] names, string target) { for (int i = 0; i < names.Length; i++) { if (names[i] == target) { return ref names[i]; // Return a reference to the array element } } throw new Exception("Name not found"); } string[] names = { "Alice", "Bob", "Charlie" }; ref string foundName = ref FindName(names, "Bob"); foundName = "Bobby"; // Directly modifies the array Console.WriteLine(string.Join(", ", names)); // Outputs: Alice, Bobby, Charlie
实现这些方法不仅增强了代码的可读性和可维护性,而且在处理多个返回值方面提供了灵活性和效率。对于开发人员来说,了解每种技术的优势和用例以在项目中有效利用它们至关重要。
如果你喜欢我的文章,请给我一个赞!谢谢
来源:https://mp.weixin.qq.com/s/LqFX32Cb4YeEQMOBYr23jQ
标签:返回,string,示例,C#,创建,Sum,int,ref,public From: https://www.cnblogs.com/z5337/p/18166289