diff --git a/TupleStudyTest/ValueTupleStudyTest.cs b/TupleStudyTest/ValueTupleStudyTest.cs
index b635e3c..1605ec7 100644
--- a/TupleStudyTest/ValueTupleStudyTest.cs
+++ b/TupleStudyTest/ValueTupleStudyTest.cs
@@ -22,19 +22,83 @@ namespace TupleStudyTest
tupleStudy = new TupleStudy.ValueTupleStudy();
}
+ ///
+ /// 使用构造函数创建值元组
+ ///
[Fact]
- public void ValueTuple_Create_Constructor()
+ public void Create_ValueTuple_Constructor_Test()
{
- var emptyTuple = new ValueTuple();
- Assert.IsType(emptyTuple);
+ //创建包含零个元组的值元组
+ var zeroTuple = new ValueTuple();
+ Assert.IsType(zeroTuple);
- }
+ //1个元组的值元组
+ var oneTuple = new ValueTuple(1);
+ Assert.Equal(1, oneTuple.Item1);
+ Assert.Equal("first", new ValueTuple("first").Item1);
- [Fact]
- public void Test()
- {
- ValueTuple aa = new ValueTuple();
-
+ //2个元组的值元组
+ var twoTuple = new ValueTuple(1,2);
+ Assert.Equal(1, twoTuple.Item1);
+ Assert.Equal(2, twoTuple.Item2);
+
+ //3个元组的值元组
+ var threeTuple = new ValueTuple(1,2,3);
+ Assert.Equal(1, threeTuple.Item1);
+ Assert.Equal(2, threeTuple.Item2);
+ Assert.Equal(3, threeTuple.Item3);
+
+
+ //4个元组的值元组
+ var fourTuple = new ValueTuple(1,2,3,4);
+ Assert.Equal(1, fourTuple.Item1);
+ Assert.Equal(2, fourTuple.Item2);
+ Assert.Equal(3, fourTuple.Item3);
+ Assert.Equal(4, fourTuple.Item4);
+
+ //5个元组的值元组
+ var fiveTuple = new ValueTuple(1,2,3,4,5);
+ Assert.Equal(1, fiveTuple.Item1);
+ Assert.Equal(2, fiveTuple.Item2);
+ Assert.Equal(3, fiveTuple.Item3);
+ Assert.Equal(4, fiveTuple.Item4);
+ Assert.Equal(5, fiveTuple.Item5);
+
+ //6个元组的值元组
+ var sixTuple = new ValueTuple(1, 2, 3, 4, 5, 6);
+ Assert.Equal(1, sixTuple.Item1);
+ Assert.Equal(2, sixTuple.Item2);
+ Assert.Equal(3, sixTuple.Item3);
+ Assert.Equal(4, sixTuple.Item4);
+ Assert.Equal(5, sixTuple.Item5);
+ Assert.Equal(6, sixTuple.Item6);
+
+ //7个元组的值元组
+ var sevenTuple = new ValueTuple(1, 2, 3, 4, 5, 6, 7);
+ Assert.Equal(1, sevenTuple.Item1);
+ Assert.Equal(2, sevenTuple.Item2);
+ Assert.Equal(3, sevenTuple.Item3);
+ Assert.Equal(4, sevenTuple.Item4);
+ Assert.Equal(5, sevenTuple.Item5);
+ Assert.Equal(6, sevenTuple.Item6);
+ Assert.Equal(7, sevenTuple.Item7);
+
+ //8个及以上元组的值元组:元组嵌套
+ var overSevenTuple = new ValueTuple>(1, 2, 3, 4, 5, 6, 7, new ValueTuple(8, 9, 10));
+ Assert.Equal(1, overSevenTuple.Item1);
+ Assert.Equal(2, overSevenTuple.Item2);
+ Assert.Equal(3, overSevenTuple.Item3);
+ Assert.Equal(4, overSevenTuple.Item4);
+ Assert.Equal(5, overSevenTuple.Item5);
+ Assert.Equal(6, overSevenTuple.Item6);
+ Assert.Equal(7, overSevenTuple.Item7);
+
+ //元组嵌套
+ Assert.Equal(8, overSevenTuple.Item8);
+ Assert.Equal(9, overSevenTuple.Item9);
+ Assert.Equal(10, overSevenTuple.Item10);
+
+ //16个以上,要审视程序设计,是否确实需要使用ValueTuple,最好改成设计成类
}
}
}