¿Por qué mi código muestra este error? Estoy tratando de resolver la segunda pregunta en Coderbyte, se trata de invertir una cadena.
Error:
Main.cs(8,39): error CS0411: The type arguments for method `System.MemoryExtensions.Reverse<T>(this System.Span<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitlyCódigo:
using System; class MainClass { public static string FirstReverse(string str) { string backwards = new string(str.Reverse().ToArray()); return backwards; } static void Main() { Console.WriteLine(FirstReverse(Console.ReadLine())); } }String ( https://docs.microsoft.com/en-us/dotnet/api/system.string?view=net-5.0 ) no tiene un método Reverse , por lo que lo único para resolver Reverse es un método de extensión estático disponible con las directivas using en su programa. Desde System lo mejor que podría hacer el compilador es System.MemoryExtensions.Reverse<T>(this System.Span<T>) pero no pudo usar esto porque String no es un Span<T> para ninguna T .
Probablemente estaba buscando Enumerable.Reverse<T> ( https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.reverse?view=net-5.0 ) porque String es un IEnumerable<char> . Para usar esto, deberá incluirlo con el using System.Linq;