关于泛型,请高手过来看看。
今天学习泛型,看得晕呼晕呼的,请大侠帮忙解析一下泛型主要做什么用,在业务逻辑上可以解决什么问题。还有下面的代码怎么去理解。
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace ListDemo
{
public class FindRacer
{
private string car;
public FindRacer(string car)
{
this.car = car;
}
public bool DrivingCarPredicate(Racer racer)
{
return racer.Car == car;
}
}
public class RacerComparer : IComparer <Racer>
{
public enum CompareType
{
Name,
Car
}
private CompareType compareType;
public RacerComparer(CompareType compareType)
{
this.compareType = compareType;
}
#region IComparer <Racer> Members
public int Compare(Racer x, Racer y)
{
int result = 0;
switch (compareType)
{
case CompareType.Name:
result = x.Name.CompareTo(y.Name);
break;
case CompareType.Car:
result = x.Car.CompareTo(y.Car);
break;
}
return result;
}
#endregion
}
public class Person
{
private string firstname;
public string Firstname
{
get
{
return firstname;
}
set
{
firstname = value;
}
}
private string lastname;
public string Lastname
{
get
{
return lastname;
}
set
{
lastname = value;
}
}
public Person(string firstname, string lastname)
{
this.firstname = firstname;
this.lastname = lastname;
}
public override string ToString()
{
return firstname + " " + lastname;
}
}
public class Racer
{
private string name;
public string Name
{
get
{
return name;
}
}
private string car;
public string Car
{
get
{
return car;
}
}
public Racer(string name, string car)
{
this.name = name;
this.car = car;
}
public override string ToString()
{
return name;
}
}
class Program
{
static void Main(string[] args)
{
List <Racer> racers = new List <Racer> ();
racers.Add(new Racer( "Michael Schumacher ", "Ferrari "));
racers.Add(new Racer( "Juan Pablo Montoya ", "McLaren-Mercedes "));
racers.Add(new Racer( "Kimi Raikkonen ", "McLaren-Mercedes "));