[英]Generic converter can't infer type
我正在尝试编写此转换器以与所有类型一起使用。 所以我正在使用泛型。 但是收到以下编译时错误。
error CS0411: The type arguments for method 'SomeConverter.ConvertToList<T>(ArrayLike)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
有可能没有在ConvertToList中明确说明类型? 如果不是,为什么不能在通用方法中推断出T?
using System;
using System.Collections;
using System.Collections.Generic;
public static class SomeConverter
{
public static List<T> ConvertToList<T>(ArrayLike inputArray)
{
List<T> tList = new List<T>();
for(int i=0; i < inputArray.Length; i++)
{
tList.Add ((T)(object)inputArray[i]);
}
return tList;
}
}
public class ArrayLike
{
private string[] arr = new string[100];
public string this[int i]
{
get
{
return arr[i];
}
set
{
arr[i] = value;
}
}
public int Length { get { return 100; } }
}
class TestClass
{
static void Main(string[] args)
{
ArrayLike arrayLike = new ArrayLike();
arrayLike[0] = "a";
arrayLike[1] = "b";
arrayLike[2] = "c";
List<string> stringList = SomeConverter.ConvertToList(arrayLike);
foreach(string str in stringList)
Console.WriteLine (str);
}
}
您在此方法中没有任何通用参数。 因此,它不能从其参数推断T的类型。 您应该手动指定类型通用参数:
List<string> stringList = SomeConverter.ConvertToList<string>(arrayLike);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.