From 83521c60bf56425cd977dc35a5bf48942ae0d3ae Mon Sep 17 00:00:00 2001 From: bicijinlian Date: Mon, 16 Jul 2018 23:43:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=80=BC=E5=85=83=E7=BB=84=E5=AD=A6=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TupleStudyTest/ValueTupleStudyTest.cs | 82 ++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 9 deletions(-) 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,最好改成设计成类 } } }