|
|
@ -15,49 +15,49 @@ namespace TupleStudyTest
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public class ValueTupleStudyTest
|
|
|
|
public class ValueTupleStudyTest
|
|
|
|
{
|
|
|
|
{
|
|
|
|
private TupleStudy.ValueTupleStudy tupleStudy;
|
|
|
|
private ValueTupleStudy valueTupleStudy;
|
|
|
|
|
|
|
|
|
|
|
|
public ValueTupleStudyTest()
|
|
|
|
public ValueTupleStudyTest()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
tupleStudy = new TupleStudy.ValueTupleStudy();
|
|
|
|
valueTupleStudy = new ValueTupleStudy();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// 使用构造函数创建值元组
|
|
|
|
/// 使用构造函数创建值元组
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
[Fact]
|
|
|
|
[Fact]
|
|
|
|
public void Create_ValueTuple_Constructor_Test()
|
|
|
|
public void CreateValueTuple_Test()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//创建包含零个元组的值元组
|
|
|
|
//创建包含零个元组的值元组
|
|
|
|
var zeroTuple = new ValueTuple();
|
|
|
|
System.ValueTuple zeroTuple = this.valueTupleStudy.CreateValueTuple();
|
|
|
|
Assert.IsType<ValueTuple>(zeroTuple);
|
|
|
|
Assert.IsType<ValueTuple>(zeroTuple);
|
|
|
|
|
|
|
|
|
|
|
|
//1个元组的值元组
|
|
|
|
//1个元组的值元组
|
|
|
|
var oneTuple = new ValueTuple<int>(1);
|
|
|
|
var oneTuple = valueTupleStudy.CreateValueTuple<int>(1);
|
|
|
|
Assert.Equal(1, oneTuple.Item1);
|
|
|
|
Assert.Equal(1, oneTuple.Item1);
|
|
|
|
Assert.Equal("first", new ValueTuple<string>("first").Item1);
|
|
|
|
Assert.Equal("first", new ValueTuple<string>("first").Item1);
|
|
|
|
|
|
|
|
|
|
|
|
//2个元组的值元组
|
|
|
|
//2个元组的值元组
|
|
|
|
var twoTuple = new ValueTuple<int,int>(1,2);
|
|
|
|
var twoTuple = valueTupleStudy.CreateValueTuple<int, int>(1, 2);
|
|
|
|
Assert.Equal(1, twoTuple.Item1);
|
|
|
|
Assert.Equal(1, twoTuple.Item1);
|
|
|
|
Assert.Equal(2, twoTuple.Item2);
|
|
|
|
Assert.Equal(2, twoTuple.Item2);
|
|
|
|
|
|
|
|
|
|
|
|
//3个元组的值元组
|
|
|
|
//3个元组的值元组
|
|
|
|
var threeTuple = new ValueTuple<int,int,int>(1,2,3);
|
|
|
|
var threeTuple = valueTupleStudy.CreateValueTuple<int, int, int>(1, 2, 3);
|
|
|
|
Assert.Equal(1, threeTuple.Item1);
|
|
|
|
Assert.Equal(1, threeTuple.Item1);
|
|
|
|
Assert.Equal(2, threeTuple.Item2);
|
|
|
|
Assert.Equal(2, threeTuple.Item2);
|
|
|
|
Assert.Equal(3, threeTuple.Item3);
|
|
|
|
Assert.Equal(3, threeTuple.Item3);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//4个元组的值元组
|
|
|
|
//4个元组的值元组
|
|
|
|
var fourTuple = new ValueTuple<int,int,int,int>(1,2,3,4);
|
|
|
|
var fourTuple = valueTupleStudy.CreateValueTuple<int, int, int, int>(1, 2, 3, 4);
|
|
|
|
Assert.Equal(1, fourTuple.Item1);
|
|
|
|
Assert.Equal(1, fourTuple.Item1);
|
|
|
|
Assert.Equal(2, fourTuple.Item2);
|
|
|
|
Assert.Equal(2, fourTuple.Item2);
|
|
|
|
Assert.Equal(3, fourTuple.Item3);
|
|
|
|
Assert.Equal(3, fourTuple.Item3);
|
|
|
|
Assert.Equal(4, fourTuple.Item4);
|
|
|
|
Assert.Equal(4, fourTuple.Item4);
|
|
|
|
|
|
|
|
|
|
|
|
//5个元组的值元组
|
|
|
|
//5个元组的值元组
|
|
|
|
var fiveTuple = new ValueTuple<int,int,int,int,int>(1,2,3,4,5);
|
|
|
|
var fiveTuple = valueTupleStudy.CreateValueTuple<int, int, int, int, int>(1, 2, 3, 4, 5);
|
|
|
|
Assert.Equal(1, fiveTuple.Item1);
|
|
|
|
Assert.Equal(1, fiveTuple.Item1);
|
|
|
|
Assert.Equal(2, fiveTuple.Item2);
|
|
|
|
Assert.Equal(2, fiveTuple.Item2);
|
|
|
|
Assert.Equal(3, fiveTuple.Item3);
|
|
|
|
Assert.Equal(3, fiveTuple.Item3);
|
|
|
@ -65,7 +65,7 @@ namespace TupleStudyTest
|
|
|
|
Assert.Equal(5, fiveTuple.Item5);
|
|
|
|
Assert.Equal(5, fiveTuple.Item5);
|
|
|
|
|
|
|
|
|
|
|
|
//6个元组的值元组
|
|
|
|
//6个元组的值元组
|
|
|
|
var sixTuple = new ValueTuple<int, int, int, int, int, int>(1, 2, 3, 4, 5, 6);
|
|
|
|
var sixTuple = valueTupleStudy.CreateValueTuple<int, int, int, int, int, int>(1, 2, 3, 4, 5, 6);
|
|
|
|
Assert.Equal(1, sixTuple.Item1);
|
|
|
|
Assert.Equal(1, sixTuple.Item1);
|
|
|
|
Assert.Equal(2, sixTuple.Item2);
|
|
|
|
Assert.Equal(2, sixTuple.Item2);
|
|
|
|
Assert.Equal(3, sixTuple.Item3);
|
|
|
|
Assert.Equal(3, sixTuple.Item3);
|
|
|
@ -74,7 +74,7 @@ namespace TupleStudyTest
|
|
|
|
Assert.Equal(6, sixTuple.Item6);
|
|
|
|
Assert.Equal(6, sixTuple.Item6);
|
|
|
|
|
|
|
|
|
|
|
|
//7个元组的值元组
|
|
|
|
//7个元组的值元组
|
|
|
|
var sevenTuple = new ValueTuple<int, int, int, int, int, int, int>(1, 2, 3, 4, 5, 6, 7);
|
|
|
|
var sevenTuple = valueTupleStudy.CreateValueTuple<int, int, int, int, int, int, int>(1, 2, 3, 4, 5, 6, 7);
|
|
|
|
Assert.Equal(1, sevenTuple.Item1);
|
|
|
|
Assert.Equal(1, sevenTuple.Item1);
|
|
|
|
Assert.Equal(2, sevenTuple.Item2);
|
|
|
|
Assert.Equal(2, sevenTuple.Item2);
|
|
|
|
Assert.Equal(3, sevenTuple.Item3);
|
|
|
|
Assert.Equal(3, sevenTuple.Item3);
|
|
|
@ -84,7 +84,7 @@ namespace TupleStudyTest
|
|
|
|
Assert.Equal(7, sevenTuple.Item7);
|
|
|
|
Assert.Equal(7, sevenTuple.Item7);
|
|
|
|
|
|
|
|
|
|
|
|
//8个及以上元组的值元组:元组嵌套
|
|
|
|
//8个及以上元组的值元组:元组嵌套
|
|
|
|
var overSevenTuple = new ValueTuple<int, int, int, int, int, int, int, ValueTuple<int, int, int>>(1, 2, 3, 4, 5, 6, 7, new ValueTuple<int, int, int>(8, 9, 10));
|
|
|
|
var overSevenTuple = valueTupleStudy.CreateValueTuple<int, int, int, int, int, int, int, ValueTuple<int, int, int>>(1, 2, 3, 4, 5, 6, 7, new ValueTuple<int, int, int>(8, 9, 10));
|
|
|
|
Assert.Equal(1, overSevenTuple.Item1);
|
|
|
|
Assert.Equal(1, overSevenTuple.Item1);
|
|
|
|
Assert.Equal(2, overSevenTuple.Item2);
|
|
|
|
Assert.Equal(2, overSevenTuple.Item2);
|
|
|
|
Assert.Equal(3, overSevenTuple.Item3);
|
|
|
|
Assert.Equal(3, overSevenTuple.Item3);
|
|
|
@ -100,5 +100,11 @@ namespace TupleStudyTest
|
|
|
|
|
|
|
|
|
|
|
|
//16个以上,要审视程序设计,是否确实需要使用ValueTuple,最好改成设计成类
|
|
|
|
//16个以上,要审视程序设计,是否确实需要使用ValueTuple,最好改成设计成类
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
|
|
|
public void GetValueTuple_Test()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|