Ошибка 7, аргумент 1: невозможно преобразовать из '' в ''

Я сталкиваюсь с ошибкой, которой раньше не видел. Я надеюсь, что кто-то может помочь.

Вот мой код:

public class MyT
{
    public int ID { get; set; }
    public MyT Set(string Line)
    {
        int x = 0;

        this.ID = Convert.ToInt32(Line);

        return this;
    }
}

public class MyList<T> : List<T> where T : MyT, new()
{
    internal T Add(T n)
    {
        Read();
        Add(n);
        return n;
    }
    internal MyList<T> Read()
    {
        Clear();
        StreamReader sr = new StreamReader(@"../../Files/" + GetType().Name + ".txt");
        while (!sr.EndOfStream)
            Add(new T().Set(sr.ReadLine())); //<----Here is my error!
        sr.Close();
        return this;
    }
}

public class Customer : MyT
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class Item : MyT
{
    public int ID { get; set; }
    public string Category { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
}

public class MyClass
{
    MyList<Customer> Customers = new MyList<Customer>();
    MyList<Item> Items = new MyList<Item>();
}

В строке, которая говорит: «Добавить (новый T (). Set (sr.ReadLine ()));» Я получаю «Ошибка 7, аргумент 1: не могу преобразовать из« Simple_Reservation_System.MyT »в« T »». Может кто-нибудь, пожалуйста, помогите мне исправить это.