为什么我的 IDE (Visual Studio Code) 将“using xy”指令标记为不必要的,即使我需要它们进行编译?

Why does my IDE (Visual Studio Code) mark "using xy" directives as unneccessary even though i require them for compiling?

提问人:freeprogramer233 提问时间:4/28/2019 更新时间:4/28/2019 访问量:45

问:

我想编译和运行一些 c# 代码,但由于引用的库找不到方法/类,它不起作用。即使我包含了所需的命名空间,例如“using System.Collections.Generic;”,它们也会显示为灰色并标有“Using directive is unconccessary”,即使我的代码需要它。因此,编译失败。我做错了什么?

using System.Collections.Generic;

namespace NetCoreExamples
{
    class Program
    {
        static void Main(string[] args)
        {
           ##some code##
        }

        private static async Task MainAsync(string[] args)
        {
            var type = Type.GetType(args[0]);
            await (Task)type.GetMethod("RunAsync", BindingFlags.NonPublic | BindingFlags.Static)
                .Invoke(null, new object[] {args.TakeLast(args.Length - 1).ToArray() });
        }
    }
}

关于短语“args.TakeLast(args.Length - 1)“, ”TakeLast“ 带有下划线,表示”string[] 没有 TakeLast 的定义,并且没有找到接受第一个参数作为 string[] 的扩展方法。(可能缺少使用指令或程序集引用)”。

要使用 System.Collections.Generic.IEnumerable,我发现它的位置:

Namespace: System.Collections.Generic

组件: System.Runtime.dll、mscorlib.dll、netstandard.dll

但是“using System.Collections.Generic;”一直显示为灰色,引用项目的程序集并没有改变任何内容。

我确信这是微不足道的,但我似乎无法找出我做错了什么。

C# visual-studio-code 参考 using 指令

评论

0赞 Crowcoder 4/28/2019
您需要引入 .System.LinqTakeLast
0赞 freeprogramer233 4/28/2019
我尝试了System.Linq,它实际上是在没有标记“不需要”的情况下导入的,但它并没有解决问题,仍然说“string[] 没有 TakeLast 的定义,也没有找到接受第一个参数作为 string[] 的扩展方法。(可能缺少使用指令或程序集引用)”。
1赞 Crowcoder 4/28/2019
你用的是什么框架?
0赞 freeprogramer233 4/28/2019
Microsoft .NET Framework 版本 4.7.03056 (c) 2017
1赞 Crowcoder 4/28/2019
TakeLast在 4.7 中不可用。你可以改用 和 代替。SkipTake

答: 暂无答案