C# 4.0 giới thiệu 1 tính năng mới là Tuple. Mục đích sử dụng Tuple là tạo ra các đối tượng có kiểu dữ liệu phức tạp nhằm để lưu trữ dữ liệu tạm thời.
Lưu ý: Mỗi Tuple định nghĩa sẵn các item1, item2,... Có tối đa 8 items được định nghĩa.
Trong .NET 3.5 trở về trước, để nhận được kết quả trả về gồm 4 giá trị, bạn có thể viết:
Hoặc tạo đối tượng để lưu trữ giá trị trả về:
Nhưng nếu bạn chỉ sử dụng đối tượng chỉ 1 lần và không bao giờ dùng tới nữa, thì đơn giản nhất là dùng Tuple:
Lưu ý: Mỗi Tuple định nghĩa sẵn các item1, item2,... Có tối đa 8 items được định nghĩa.
public class Tuple <T1> public class Tuple <T1, T2> public class Tuple <T1, T2, T3> public class Tuple <T1, T2, T3, T4> public class Tuple <T1, T2, T3, T4, T5> public class Tuple <T1, T2, T3, T4, T5, T6> public class Tuple <T1, T2, T3, T4, T5, T6, T7> public class Tuple <T1, T2, T3, T4, T5, T6, T7, TRest>
Cách sử dụng
Ví dụ về cách khai báo và sử dụng Tuple: Tạo tuple thông qua Constructorstatic void Example1() { var o1 = new Tuple<int, string, DateTime>(1, "An Binh Trong", new DateTime(1989, 1, 10)); var o2 = new Tuple<int, string, DateTime>(2, "An Anh", new DateTime(1989, 11, 27)); Console.WriteLine("{0} {1}", o1.Item1, o1.Item2); Console.WriteLine(o1.Equals(o2)); }
Mục đích:
Sử dụng Tuple là để trả về nhiều giá trị từ 1 hàm/ phương thứcVí dụ: bạn có hàm Calculator dùng để tính toán +, -, *, /
Trong .NET 3.5 trở về trước, để nhận được kết quả trả về gồm 4 giá trị, bạn có thể viết:
/// Calculate private void Calculate(out int add, out int sub,out int mul,out int div) { int num1 = 5; int num2 = 4; add = num1 + num2; sub = num1 - num2; mul = num1 * num2; div = num1 / num2; }(Hoặc sử dụng từ khóa ref thay cho out).
Hoặc tạo đối tượng để lưu trữ giá trị trả về:
Nhưng nếu bạn chỉ sử dụng đối tượng chỉ 1 lần và không bao giờ dùng tới nữa, thì đơn giản nhất là dùng Tuple:
static void Example2() { var result = Calculator(); Console.WriteLine("Ket qua: {0} {1} {2} {3}", result.Item1, result.Item2, result.Item3, result.Item4); } static Tuple<int, int, int, double> Calculator() { int a = 13, b = 8; return Tuple.Create(a + b, a - b, a * b, 1.0 * a / b); }Tham khảo từ: An introduction to Tuple
Nhận xét
Đăng nhận xét