从c#返回泛型列表的Class1代码
private void Form1_Load(object sender, EventArgs e)
{
Class1<int> obj = new Class1<int>();
List<int> covariant = new List<int>();
covariant = obj.mark();
System.Console.WriteLine(covariant[0]);
}
public class Class1<T>
{
public List<T> mark()
{
List<object> covariant = new List<object>();
covariant.Add(5); *unable to get value in covariant list defined. Getting null vlaue*
return covariant as List<T>;
}
}无法在定义的协变量列表中获得值。获得空vlaue,无法在定义的协变量列表中获得值。获得空vlaue,无法在定义的协变量列表中获得值。获得空vlaue,无法在定义的协变量列表中获得值。获得空vlaue
发布于 2020-01-13 13:51:38
如果要在方法中显式使用Generics,我认为不应该使用int。
这应该是您第一个不应该使用泛型的hint。下面是您的类在更恰当地使用泛型时的样子。
public class Class1<T>
{
private List<T> covariants = new List<T>();
public List<T> mark(T item)
{
covariants.Add(item);
return covariants;
}
}var s = new Class1<int>.mark(5)将返回一个计数1的列表,s.mark(10)将返回一个包含两个项的列表。
有关c#泛型的更多信息,请阅读docs -> https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/。
https://stackoverflow.com/questions/59717659
复制相似问题