Изменение шаблона вызывает ошибку "Cannot implicitly convert type 'ExamList.Form1.SimpleElm' to 'T'" - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Возникла проблема. Имеется рабочий код вида
public class SimpleElm
        {
            public string value;
            public SimpleElm next;
            public SimpleElm(string value)
            {
                this.value = value;
                this.next = null;
            }
        }
 
        public static class List
        {
 
           ...
 
static public bool Delete (ref SimpleElm firstElm, int n)
            {
                SimpleElm currentElm = firstElm;
                if (currentElm == null) return false;
                if (n == 1)
                {
                    firstElm = firstElm.next;
                    return true;
                }
                for (int i = 1; i < n - 1; i++)
                {
                    if (currentElm.next == null) return false;
                    currentElm = currentElm.next;
                }
                if (currentElm.next == null) return false;
                currentElm.next = currentElm.next.next;
                return true;
            }
        }
Но если попробовать применить шаблон и заменить, то начинает ругаться
static public bool Delete<T> (ref T firstElm, int n) where T: SimpleElm
            {
                T currentElm = firstElm;
                if (currentElm == null) return false;
                if (n == 1)
                {
                    firstElm = firstElm.next;
                    return true;
                }
                for (int i = 1; i < n - 1; i++)
                {
                    if (currentElm.next == null) return false;
                    currentElm = currentElm.next;
                }
                if (currentElm.next == null) return false;
                currentElm.next = currentElm.next.next;
                return true;
            }
Cannot implicitly convert type 'ExamList.Form1.SimpleElm' to 'T'. An explicit conversion exists (are you missing a cast?)
Как это исправить?

Решение задачи: «Изменение шаблона вызывает ошибку "Cannot implicitly convert type 'ExamList.Form1.SimpleElm' to 'T'"»

textual
Листинг программы
class List<T>
{
    class Node
    {
        public T value { get; set; }
        public Node Next { get; set; }
 
        public Node(T value)
        {
            this.value = value;
        }
    }
 
    private Node Head { get; set; }
 
    public void Add(T item)
    {
        if (Head == null)
            Head = new Node(item);
        else
        {
            ...
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы