При обеспечении более Generic ограниченияМожет ли тип получить от себя?
class GenericTest
{
public void Sample<T>(T someValue) where T:Racer,new()
{
Console.WriteLine(someValue.Car);
}
}
типа Т должен быть получен из базового типа Racer (Поправьте меня, если что-то не так).
public class Racer
{
string name;
string car;
public Racer() { }
public Racer(string name, string car)
{
this.name = name;
this.car = car;
}
public string Name
{
get { return name; }
}
public string Car
{
get { return car; }
}
}
В "Main()" Я, как выполнение
static void Main(string[] args)
{
List<Racer> rcr = new List<Racer>();
rcr.Add(new Racer("James","Ferrari"));
rcr.Add(new Racer("Azar","Bmw"));
rcr.Sort(delegate(Racer a, Racer b)
{return a.Name.CompareTo(b.Name); });
GenericTest tst = new GenericTest();
tst.Sample<Racer>(rcr[0]);
Console.ReadLine();
}
Мой вопрос:
Ограничение Я реализовал это where T:Racer,new()
, поэтому T должен быть получен от Racer. But In Main() Я прохожу (tst.Sample<Racer>(rcr[0]);
) тип "Racer"
. Код работает.
Как получить гонщик из гонщика?
простой и приятный. – user196546