Я хочу скомпилировать и запустить некоторый код на 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 вне, ссылки на сборки для проекта ничего не изменило.
Я уверен, что это тривиально, но я не могу понять, что я делаю неправильно.