2011-09-30 23 views
7

thể trùng lặp:
What's the purpose of the Tuple(T1)/Singleton in .net?Whats điểm của tuple (Of T)

Đang cố gắng để bắt chước một tuple như thực hiện trong Net 4 (Đối với Net 3) Tôi chỉ nhận ra có một Tuple (Of T)? Đây là một sự ngạc nhiên!

Tại sao mọi người sẽ làm điều này

Tuple<string> result = new Tuple<string>("Data"); 

Thay vì điều này

return "Data"; 

Không phải là toàn bộ vấn đề của một tuple rằng nó một container cho "dữ liệu lỏng lẻo liên quan mà isnt đủ gắn kết để làm cho một lớp khác"? Tui bỏ lỡ điều gì vậy?

+0

Xin lỗi về điều đó, tôi đã xem, vừa bỏ lỡ điều đó. –

Trả lời

4

Có một số hữu hạn các tuple-arities trong thư viện, do đó, để xác định 8-tuple, bạn sử dụng loại với 7 yếu tố có đối số 'còn lại' là một bộ. Xem

http://msdn.microsoft.com/en-us/library/dd383325.aspx

+1

Điều này không trả lời được câu hỏi nào cả. OP đang hỏi, "Tại sao có một Tuple chỉ một mục?" Đó dường như là một câu hỏi hợp lý để hỏi. –

+2

Câu trả lời cho câu hỏi này như thế nào? – jason

+1

Tại sao lại hận thù vì câu trả lời này? Trang MSDN được liên kết đưa ra một ví dụ rõ ràng về khi một tuple phần tử đơn là * required *, chẳng hạn như khi cung cấp tham số TREST cho một bộ 8-tuple. – Levi

1

Đây là một thực hiện lại từ lý thuyết tập hợp mà có thể không có nhiều sử dụng cho một nhà phát triển phần mềm.

Tuples chỉ là danh sách các phần tử được sắp xếp đơn giản. Một N-tuple có n phần tử, và n có thể là một, được gọi là một singleton. Bạn có thể sẽ không có nhiều sử dụng cho 1-tuple trong mã, nhưng tôi đoán đội C# đặt nó trong đó cho đầy đủ.

http://en.wikipedia.org/wiki/Tuple#Etymology

+1

Vì vậy, tất cả chúng ta đều đồng ý rằng một Tuple của một mục vốn đã vô dụng? –

+1

Để phát triển phần mềm, tôi không thể nghĩ đến việc sử dụng nó. Có lẽ nếu bạn đang viết một chương trình để mô hình hóa một bộ toán học ??? Bạn nên gửi email cho Eric Lippert một liên kết đến câu hỏi này, có lẽ anh ta sẽ cung cấp một số đầu vào ngày mai –

+0

Vì vậy, bạn có, tôi đoán, giả thuyết về tiện ích của một lớp BCL cổ phần trong lĩnh vực không phải là phát triển phần mềm? –

Các vấn đề liên quan