Thêm vào các câu trả lời trước, C # 7 mang lại các bộ giá trị kiểu giá trị, không giống như System.Tuple
kiểu tham chiếu và cũng cung cấp ngữ nghĩa được cải thiện.
Bạn vẫn có thể không đặt tên cho chúng và sử dụng .Item*
cú pháp:
(string, string, int) getPerson()
{
return ("John", "Doe", 42);
}
var person = getPerson();
person.Item1;
person.Item2;
person.Item3;
Nhưng điều thực sự mạnh mẽ về tính năng mới này là khả năng có các bộ giá trị được đặt tên. Vì vậy, chúng tôi có thể viết lại ở trên như thế này:
(string FirstName, string LastName, int Age) getPerson()
{
return ("John", "Doe", 42);
}
var person = getPerson();
person.FirstName;
person.LastName;
person.Age;
Cơ cấu hủy cũng được hỗ trợ:
(string firstName, string lastName, int age) = getPerson()