繁体   English   中英

从 C# 中的泛型类返回的列表,但列表(协变)未在主类中更新?

[英]List returned from generic class in c# but list(covariant )is not getting updated in main class?

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>;
       }
    }

无法在定义的协变列表中获取值。 获取空值无法在定义的协变列表中获取值。 获取空值无法在定义的协变列表中获取值。 获取空值无法在定义的协变列表中获取值。 获得空值

我认为如果您要在方法中显式使用int则不应使用Generics

这应该是您首先不应该使用泛型的第一个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# 泛型的更多信息,您可以阅读文档 -> https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM