NEWS

[C#] Sử dụng Value Tuple trong Csharp 7

[C#] Sử dụng Value Tuple trong Csharp 7
Đăng bởi: Thảo Meo - Lượt xem: 3680 08:14:10, 15/05/2021DEVEXPRESS   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ hướng dẫn các bạn sử dụng Value Tuple trong lập trình C#, Winform.

Từ C# 7.0, Microsoft có cung cấp cho chúng ta Value Tuple.

Cách sử dụng Value Tuple

Value-tuple-C-7

Cách khai báo:

var person = (1, "Nguyễn", "Thảo");
    
//cách khai báo trên Tuple
//var person = Tuple.Create(1, "Nguyễn", "Thảo");

Ở ví dụ trên các bạn thấy mình khai báo 1 biến person, nó sẽ ngầm định hiệu person chứa 3 kiểu giá trị (int, string, string)

Cách truy cập lấy giá trị của biến person trong Value Tuple C#:

ValueTuple<int, string, string> person = (1, "Nguyễn", "Thảo");
person.Item1;  // returns 1
person.Item2;   // returns "Nguyễn"
person.Item3;   // returns "Thảo"

Hoặc chúng ta cũng có thể khai báo một cách ngắn gọn hơn, không dùng từ khóa var nhé:

(int, string, string) person = (1, "Nguyễn", "Thảo");
person.Item1;  // returns 1
person.Item2;   // returns "Nguyễn"
person.Item3;   // returns "Thảo"

Dạng Tuple khi khai báo yêu cầu phải từ hai giá trị trở lên.

var number = (1);  // int type, không phải tuple
var numbers = (1,2); // tuple

Value Tuple không giống Tuple.

Ở trong Tuple các bạn chỉ khai báo tối đa được 8 giá trị, còn Value Tuple các bạn có thể khai báo nhiều hơn.

var numbers = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14); 

Khi các bạn lấy giá trị trong tuple bằng Item1, Item2, Item3. Các bạn có thể đặt tên để dễ gợi nhớ.

(int Id, string FirstName, string LastName) person = (1, "Nguyễn", "Thảo");
person.Id;   // returns 1
person.FirstName;  // returns "Nguyễn"
person.LastName; // returns "Thảo"

Khi gán giá trị các bạn có thể chỉ định như sau:

var person = (Id:1, FirstName:"Nguyễn", LastName: "Thảo");

Chúng ta có thể khai báo Named Members ở bên trái hoặc bên phải

(int Id, string FirstName, string LastName) person = (PersonId:1, FName:"Nguyễn", LName: "Thảo");

(string, string, int) person = (PersonId:1, FName:"Nguyễn", LName: "Thảo");

Chúng ta có thể gán giá trị cho từng item trong Value Tuple

string firstName = "Lập trình", lastName = "VB.NET";
var per = (FirstName: firstName, LastName: lastName);

Cách truyền một Value Tuple vào hàm Void:

static void Main(string[] args)
{
    DisplayTuple(1, "Lập Trình", "VB.NET");
}

static void DisplayTuple((int, string, string) person)
{
    Console.WriteLine($"Id = { person.Item1}");
    Console.WriteLine($"First Name = { person.Item2}");
    Console.WriteLine($"Last Name = { person.Item3}");
}

Cách viết hàm trả giá trị về một kiểu Tuple:

static void Main(string[] args)
{
    var person = GetPerson();
}

static (int, string, string) GetPerson() 
{
    return (Id:1, FirstName: "Lập Trình", LastName: "VB.NET");
}

Chúng ta cũng có thể sử dụng từ khóa Var để khai báo biến cho từng thành viên trong Value Tuple

static void Main(string[] args)
{
    // use var as datatype
    (var PersonId, var FName, var LName) person = GetPerson();
}
static (int, string, string) GetPerson() 
{
    return (Id:1, FirstName: "Nguyễn", LastName: "Thảo");
}

Value Tuple cũng cho chúng ta bỏ qua giá trị không cần sử dụng như sau: 

Ở dưới đây khi chúng ta lấy giá trị Person từ hàm GetPerson(), chúng ta muốn bỏ qua không lấy LastName.

// Sử dụng _ để bỏ qua giá trị chúng ta không cần lấy
(var id, var FName, _) = GetPerson(); 

Các bạn có thể tìm hiểu thêm về Tuple ở dưới đây:

Hướng dẫn sử dụng Tuple trong lập trình csharp

Thanks for watching!

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Sử dụng Value Tuple trong Csharp 7
Đăng bởi: Thảo Meo - Lượt xem: 3680 08:14:10, 15/05/2021DEVEXPRESS   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.