เมื่อเขียนโปรแกรมเป็นเรื่องปกติมากที่จะต้องการรวมกลุ่มของค่าที่มีเหตุผลเข้าด้วยกันซึ่งไม่มีความคล้ายคลึงกันเพียงพอที่จะแสดงเหตุผลในการสร้างคลาส
ภาษาการเขียนโปรแกรมจำนวนมากช่วยให้คุณสามารถจัดกลุ่มชุดของค่าที่ไม่เกี่ยวข้องกันอย่างมีเหตุผลโดยไม่ต้องสร้างประเภทด้วยวิธีเดียว:
void M(int foo, string bar, double blah)
ตรรกะนี้เหมือนกับเมธอด M ที่รับหนึ่งอาร์กิวเมนต์ซึ่งเป็น 3-tuple ของ int, string, double แต่ฉันหวังว่าคุณจะไม่ทำ:
class MArguments
{
public int Foo { get; private set; }
... etc
เว้นแต่ว่า MArguments จะมีความหมายอื่นในตรรกะทางธุรกิจ
แนวคิดของ "รวมกลุ่มข้อมูลที่ไม่เกี่ยวข้องกันไว้ด้วยกันในโครงสร้างบางส่วนที่มีน้ำหนักเบากว่าคลาส" มีประโยชน์ในหลาย ๆ ที่ไม่ใช่เฉพาะสำหรับรายการพารามิเตอร์ที่เป็นทางการ จะมีประโยชน์เมื่อเมธอดมีสองสิ่งที่ต้องส่งคืนหรือเมื่อคุณต้องการคีย์พจนานุกรมจากข้อมูลสองข้อมูลแทนที่จะเป็นหนึ่งข้อมูลและอื่น ๆ
ภาษาเช่น F # ซึ่งรองรับประเภททูเปิลให้ความยืดหยุ่นแก่ผู้ใช้เป็นอย่างมาก เป็นชุดข้อมูลที่มีประโยชน์อย่างยิ่ง ทีม BCL ตัดสินใจที่จะทำงานร่วมกับทีม F # เพื่อสร้างมาตรฐานของทูเพิลประเภทเดียวสำหรับเฟรมเวิร์กเพื่อให้ทุกภาษาได้รับประโยชน์จากพวกเขา
อย่างไรก็ตาม ณ จุดนี้ยังไม่มีการรองรับภาษาสำหรับทูเปิลใน C # Tuples เป็นเพียงประเภทข้อมูลอื่นเช่นเดียวกับคลาส Framework อื่น ๆ ไม่มีอะไรพิเศษเกี่ยวกับพวกเขา เรากำลังพิจารณาเพิ่มการสนับสนุนที่ดีขึ้นสำหรับสิ่งที่เพิ่มขึ้นใน C # เวอร์ชันสมมุติในอนาคต หากใครมีความคิดเห็นเกี่ยวกับคุณสมบัติที่เกี่ยวข้องกับสิ่งที่คุณต้องการดูเรายินดีที่จะส่งต่อให้กับทีมออกแบบ สถานการณ์ที่เป็นจริงมีความน่าเชื่อมากกว่าเนื้อหาทางทฤษฎี