C# 7.0 新特性1之基于Tuple的“多”返回值方法
原文链接:http://www.cnblogs.com/ylvict/p/5573094.html 回顾 • static void Main(string[] args) { int int1 = 15; int int2 = 25; var result = Add_Multiply(int1,int2); Console.WriteLine(result.Key); Console.WriteLine(result.Value); } private static KeyValuePair<int,int> Add_Multiply(int int1,int int2) { var KeyValuePair = new KeyValuePair<int,int>(int1 + int2,int1 * int2); return KeyValuePair; } •使用 ref/out 参数 •Ref static void Main(string[] args) { int int1 = 15; int int2 = 25; int add = 0; int multiply = 0; Add_Multiply(int1,int2,ref add,ref multiply); Console.WriteLine(add); Console.WriteLine(multiply); } private static void Add_Multiply(int int1,int int2,ref int add,ref int multiply) { add = int1 + int2; multiply = int1 * int2; } •Out static void Main(string[] args) { int int1 = 15; int int2 = 25; int add = 0; int multiply = 0; Add_Multiply(int1,out add,out multiply); Console.WriteLine(add); Console.WriteLine(multiply); } private static void Add_Multiply(int int1,out int add,out int multiply) { add = int1 + int2; multiply = int1 * int2; } •使用 struct 或者 class •struct struct Result { public int add; public int multiply; } static void Main(string[] args) { int int1 = 53; int int2 = 17; var result = Add_Multiply(int1,int2); Console.WriteLine(result.add); Console.WriteLine(result.multiply); } private static Result Add_Multiply(int int1,int int2) { var result = new Result { add = int1 + int2,multiply = int1 * int2 }; return result; } •class class Result { public int add; public int multiply; } static void Main(string[] args) { int int1 = 13; int int2 = 27; var result = Add_Multiply(int1,multiply = int1 * int2 }; return result; } •dynamic static void Main(string[] args) { int int1 = 13; int int2 = 27; var result = Add_Multiply(int1,int2); Console.WriteLine(result.add); Console.WriteLine(result.multiply); } private static dynamic Add_Multiply(int int1,int int2) { var result = new { add = int1 + int2,multiply = int1 * int2 }; return result; } •使用 Tuple static void Main(string[] args) { int int1 = 25; int int2 = 28; var result = Add_Multiply(int1,int2); Console.WriteLine(result.Item1); Console.WriteLine(result.Item2); } private static Tuple<int,int int2) { var tuple = new Tuple<int,int1 * int2); return tuple; } Okay,回顾的废话有些多了。我们来看看C#7.0中的写法 static void Main(string[] args) { int int1 = 25; int int2 = 28; var result = Add_Multiply(int1,int2); Console.WriteLine($"Add: {result.add},Multiply: {result.multiply}"); //(var add,var multiply) = Add_Multiply(int1,int2); //Console.WriteLine($"Add: {add},Multiply: {multiply}"); } public (int add,int multiply) Add_Multiply(int int1,int int2) => (int1 + int2,int1 * int2); 怎么样?比起6.0及以前的C#,有没有一种非常清爽的感觉。 总结: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |