.net framework 4.6.1 运行 ValueTuple有问题,改成4.7

develop
bicijinlian 6 years ago
parent 83521c60bf
commit 392b116cdb

@ -14,6 +14,183 @@ namespace TupleStudy
/// </summary>
public class ValueTupleStudy
{
#region 构造函数 创建值元组
/// <summary>
/// 创建0元素的值元组
/// </summary>
public ValueTuple CreateValueTuple()
{
var tuple = new ValueTuple();
return tuple;
}
/// <summary>
/// 创建1元素的值元组
/// </summary>
public ValueTuple<T1> CreateValueTuple<T1>(T1 value)
{
var tuple = new ValueTuple<T1>(value);
return tuple;
}
/// <summary>
/// 创建2元素的值元组
/// </summary>
public ValueTuple<T1,T2> CreateValueTuple<T1,T2>(T1 value1, T2 value2)
{
var tuple = new ValueTuple<T1, T2>(value1, value2);
return tuple;
}
/// <summary>
/// 创建3元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3> CreateValueTuple<T1, T2, T3>(T1 value1, T2 value2, T3 value3)
{
var tuple = new ValueTuple<T1, T2, T3>(value1, value2, value3);
return tuple;
}
/// <summary>
/// 创建4元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4> CreateValueTuple<T1, T2, T3, T4>(T1 value1, T2 value2, T3 value3, T4 value4)
{
var tuple = new ValueTuple<T1, T2, T3, T4>(value1, value2, value3, value4);
return tuple;
}
/// <summary>
/// 创建5元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4, T5> CreateValueTuple<T1, T2, T3, T4, T5>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5)
{
var tuple = new ValueTuple<T1, T2, T3, T4, T5>(value1, value2, value3, value4, value5);
return tuple;
}
/// <summary>
/// 创建6元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4, T5, T6> CreateValueTuple<T1, T2, T3, T4, T5, T6>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6)
{
var tuple = new ValueTuple<T1, T2, T3, T4, T5, T6>(value1, value2, value3, value4, value5, value6);
return tuple;
}
/// <summary>
/// 创建7元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4, T5, T6, T7> CreateValueTuple<T1, T2, T3, T4,T5,T6,T7>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7)
{
var tuple = new ValueTuple<T1, T2, T3, T4, T5, T6, T7>(value1, value2, value3, value4, value5, value6, value7);
return tuple;
}
/// <summary>
/// 创建8元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest> CreateValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, TRest restValue) where TRest : struct
{
var tuple = new ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(value1, value2, value3, value4, value5, value6, value7, restValue);
return tuple;
}
#endregion
#region 静态Create方法 创建值元组
/// <summary>
/// 创建0元素的值元组
/// </summary>
public ValueTuple GetValueTuple()
{
var tuple = ValueTuple.Create();
return tuple;
}
/// <summary>
/// 创建1元素的值元组
/// </summary>
public ValueTuple<T1> GetValueTuple<T1>(T1 item1)
{
var tuple = ValueTuple.Create(item1);
return tuple;
}
/// <summary>
/// 创建2元素的值元组
/// </summary>
public ValueTuple<T1, T2> GetValueTuple<T1, T2>(T1 item1, T2 item2)
{
var tuple = ValueTuple.Create(item1, item2);
return tuple;
}
/// <summary>
/// 创建3元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3> GetValueTuple<T1, T2, T3>(T1 item1, T2 item2, T3 item3)
{
var tuple = ValueTuple.Create(item1, item2, item3);
return tuple;
}
/// <summary>
/// 创建4元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4> GetValueTuple<T1, T2, T3, T4>(T1 item1, T2 item2, T3 item3, T4 item4)
{
var tuple = ValueTuple.Create(item1, item2, item3, item4);
return tuple;
}
/// <summary>
/// 创建5元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4, T5> GetValueTuple<T1, T2, T3, T4, T5>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)
{
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5);
return tuple;
}
/// <summary>
/// 创建6元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4, T5, T6> GetValueTuple<T1, T2, T3, T4, T5, T6>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6)
{
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5, item6);
return tuple;
}
/// <summary>
/// 创建7元素的值元组
/// </summary>
public ValueTuple<T1, T2, T3, T4, T5, T6, T7> GetValueTuple<T1, T2, T3, T4, T5, T6, T7>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7)
{
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5, item6, item7);
return tuple;
}
/// <summary>
/// 创建8元素的值元组
/// </summary>
public (T1, T2, T3, T4, T5, T6, T7, TRest) GetValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest item8) where TRest:struct
{
var tuple = ValueTuple.Create(item1, item2, item3, item4, item5, item6, item7, item8);
return tuple;
}
#endregion
}
}

@ -11,10 +11,11 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TupleStudyTest</RootNamespace>
<AssemblyName>TupleStudyTest</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>

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

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("ValueTupleStudyTest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ValueTupleStudyTest")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("90707ba8-33b0-4ee7-abf5-36303f2aaa18")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;
using TupleStudy;
namespace ValueTupleStudyTest
{
/// <summary>
/// ValueTuple 需要.net framework 4.7及以上
/// .net framework 4.7及以下需要Nuget引用包System.ValueTuple 库
/// </summary>
public class ValueTupleStudyTest
{
private ValueTupleStudy valueTupleStudy;
/// <summary>
/// 构造函数
/// </summary>
public ValueTupleStudyTest()
{
valueTupleStudy = new ValueTupleStudy();
}
/// <summary>
/// 使用构造函数创建值元组
/// </summary>
[Fact]
public void CreateValueTuple_Test()
{
//创建包含零个元组的值元组
var zeroTuple = this.valueTupleStudy.CreateValueTuple();
Assert.IsType<ValueTuple>(zeroTuple);
//1个元组的值元组
var oneTuple = valueTupleStudy.CreateValueTuple<int>(1);
Assert.Equal(1, oneTuple.Item1);
Assert.Equal("first", new ValueTuple<string>("first").Item1);
//2个元组的值元组
var twoTuple = valueTupleStudy.CreateValueTuple<int, int>(1, 2);
Assert.Equal(1, twoTuple.Item1);
Assert.Equal(2, twoTuple.Item2);
//3个元组的值元组
var threeTuple = valueTupleStudy.CreateValueTuple<int, int, int>(1, 2, 3);
Assert.Equal(1, threeTuple.Item1);
Assert.Equal(2, threeTuple.Item2);
Assert.Equal(3, threeTuple.Item3);
//4个元组的值元组
var fourTuple = valueTupleStudy.CreateValueTuple<int, int, int, int>(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 = valueTupleStudy.CreateValueTuple<int, int, int, int, int>(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 = valueTupleStudy.CreateValueTuple<int, int, int, int, int, int>(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 = valueTupleStudy.CreateValueTuple<int, int, int, int, int, int, int>(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 = 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(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最好改成设计成类
}
}
}

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props')" />
<Import Project="..\packages\xunit.core.2.4.0\build\xunit.core.props" Condition="Exists('..\packages\xunit.core.2.4.0\build\xunit.core.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{90707BA8-33B0-4EE7-ABF5-36303F2AAA18}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ValueTupleStudyTest</RootNamespace>
<AssemblyName>ValueTupleStudyTest</AssemblyName>
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<HintPath>..\packages\xunit.abstractions.2.0.2\lib\net35\xunit.abstractions.dll</HintPath>
</Reference>
<Reference Include="xunit.assert, Version=2.4.0.4049, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<HintPath>..\packages\xunit.assert.2.4.0\lib\netstandard2.0\xunit.assert.dll</HintPath>
</Reference>
<Reference Include="xunit.core, Version=2.4.0.4049, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<HintPath>..\packages\xunit.extensibility.core.2.4.0\lib\net452\xunit.core.dll</HintPath>
</Reference>
<Reference Include="xunit.execution.desktop, Version=2.4.0.4049, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
<HintPath>..\packages\xunit.extensibility.execution.2.4.0\lib\net452\xunit.execution.desktop.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ValueTupleStudyTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\xunit.analyzers.0.10.0\analyzers\dotnet\cs\xunit.analyzers.dll" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\TupleStudy\TupleStudy.csproj">
<Project>{3bf11d95-1a17-444f-97a8-5536fcc8c015}</Project>
<Name>TupleStudy</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\xunit.core.2.4.0\build\xunit.core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.4.0\build\xunit.core.props'))" />
<Error Condition="!Exists('..\packages\xunit.core.2.4.0\build\xunit.core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.core.2.4.0\build\xunit.core.targets'))" />
<Error Condition="!Exists('..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\xunit.runner.visualstudio.2.4.0\build\net20\xunit.runner.visualstudio.props'))" />
</Target>
<Import Project="..\packages\xunit.core.2.4.0\build\xunit.core.targets" Condition="Exists('..\packages\xunit.core.2.4.0\build\xunit.core.targets')" />
</Project>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="xunit" version="2.4.0" targetFramework="net47" />
<package id="xunit.abstractions" version="2.0.2" targetFramework="net47" />
<package id="xunit.analyzers" version="0.10.0" targetFramework="net47" />
<package id="xunit.assert" version="2.4.0" targetFramework="net47" />
<package id="xunit.core" version="2.4.0" targetFramework="net47" />
<package id="xunit.extensibility.core" version="2.4.0" targetFramework="net47" />
<package id="xunit.extensibility.execution" version="2.4.0" targetFramework="net47" />
<package id="xunit.runner.visualstudio" version="2.4.0" targetFramework="net47" developmentDependency="true" />
</packages>

@ -3,10 +3,12 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27428.2043
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TupleStudy", "TupleStudy\TupleStudy.csproj", "{3BF11D95-1A17-444F-97A8-5536FCC8C015}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TupleStudy", "TupleStudy\TupleStudy.csproj", "{3BF11D95-1A17-444F-97A8-5536FCC8C015}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TupleStudyTest", "TupleStudyTest\TupleStudyTest.csproj", "{D8CBDB9A-3EDA-4A6B-BB13-E7765B63717E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ValueTupleStudyTest", "ValueTupleStudyTest\ValueTupleStudyTest.csproj", "{90707BA8-33B0-4EE7-ABF5-36303F2AAA18}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -21,6 +23,10 @@ Global
{D8CBDB9A-3EDA-4A6B-BB13-E7765B63717E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8CBDB9A-3EDA-4A6B-BB13-E7765B63717E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8CBDB9A-3EDA-4A6B-BB13-E7765B63717E}.Release|Any CPU.Build.0 = Release|Any CPU
{90707BA8-33B0-4EE7-ABF5-36303F2AAA18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90707BA8-33B0-4EE7-ABF5-36303F2AAA18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90707BA8-33B0-4EE7-ABF5-36303F2AAA18}.Release|Any CPU.ActiveCfg = Release|Any CPU
{90707BA8-33B0-4EE7-ABF5-36303F2AAA18}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Loading…
Cancel
Save