Почему моя IDE (код Visual Studio) помечает директивы «using xy» как ненужные, даже если они требуются для компиляции? - PullRequest
0 голосов
/ 28 апреля 2019

Я хочу скомпилировать и запустить некоторый код на c #, но он не работает из-за методов / классов, не найденных ссылочными библиотеками. Даже при том, что я включил необходимые пространства имен, например «using System.Collections.Generic;», они будут выделены серым цветом и помечены «Использовать директиву не нужно», даже если мой код требует этого. В результате компиляция не удалась. Что я делаю не так?

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, и не было найдено метода расширения, который принимает первый аргумент как строку []. ( Может отсутствовать при использовании директивы или ссылки на сборку) ".

Чтобы использовать System.Collections.Generic.IEnumerable, я обнаружил его местоположение:

Пространство имен: System.Collections.Generic

Агрегаты: System.Runtime.dll, mscorlib.dll, netstandard.dll

Но "использование System.Collections.Generic;" продолжает быть grey'd вне, ссылки на сборки для проекта ничего не изменило.

Я уверен, что это тривиально, но я не могу понять, что я делаю неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...