c#7元组。 无法在mac dotnet core 1.1中使用元组

我试图在macOS中实现Visual Studio代码中的元组c#7新特性。

   using System;
   using System.Collections.Generic;

   namespace newcsharp
   {
    public class Program
    {
        public static void Main(string[] args)
        {
            int[] numbers = { 1, 3, 4, 10, 6, 20, 78, 15, 6 };
            var result = Range(numbers);
            Console.ReadLine();
        }

        private static (int Max, int Min) Range(IEnumerable<int> numbers)
        {
            int min = int.MaxValue;
            int max = int.MinValue;
            foreach (var n in numbers)
            {
                min = (n < min) ? n : min;
                max = (n > max) ? n : max;
            }
            return (max, min);
        }
      }
   }

我得到以下的错误。 在这里输入图像描述

我在我的项目中包含了用于使用元组功能的System.ValueTuple包。

我的project.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.1.0"
    },
    "System.ValueTuple": "4.3.0"
  },
  "frameworks": {
    "netcoreapp1.1": {
      "imports": "dnxcore50"
    }
  },
  "tooling": {
    "defaultNamespace": "newcsharp"
  }
}

任何帮助赞赏。


C#7的编译器尚未发布。 在你的项目和问题中,没有迹象表明你正在使用它的RC版本。 ValueTuple只是对编译器的类型支持。

等待发布VS2017(2017年3月7日)...应该包含C#7,并且在同一时间框架内将会有一个.NET Core版本,最有可能包含新的编译器。


像元组这样的C#7功能现在可以与最新版本的VSCode和C#扩展一起工作。
请注意,您确实需要引用System.ValueTuple。

只要确保使用.csproj而不是project.json。

您可以使用以下最低限度的.csproj:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp1.1</TargetFramework>
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include="System.ValueTuple" Version="*"/>
    </ItemGroup> 
</Project>

请享用 ;)

链接地址: http://www.djcxy.com/p/37333.html

上一篇: c# 7 tuples . not able to use tuples in mac dotnet core 1.1

下一篇: How to create Socket.io client in Python to talk to a Sails server