小编Exp*_*ess的帖子

在C#中调用泛型子类中的重写方法

我在自己的通用链表实现方面遇到了问题.我正在研究的分配说两个子类NodeElementLong和NodeElementString必须从基类NodeElement下降.在NodeElement中应该有一个虚拟方法Print,后代类以自己的方式覆盖和实现.例如,当我在long类型的元素上调用Print方法时,必须调用NodeElementLong子类中的Print方法.

这是代码:

class LinearCollection<T>
{
    NodeElement<T> head = null;

    public bool Add(T element)
    {
        if (head == null)
        {
            head = new NodeElement<T>(element);
        }
        else
        {
            NodeElement<T> current = head;
            while (current.nextNode != null)
            {
                current = current.nextNode;
            }
            current.nextNode = new NodeElement<T>(element);
        }
        return true;
    }

    public NodeElement<T> Get() 
    {
        NodeElement<T> head1 = head;
        head = head.nextNode;
        return head1;
    }

    public void Print()
    {
        for (NodeElement<T> element = head; element != null; element = element.nextNode)
        {
            element.Print();
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# generics overriding

3
推荐指数
1
解决办法
763
查看次数

标签 统计

c# ×1

generics ×1

overriding ×1