class mainentrypoint
console.writeline("/n----------findall method demo-------------/n");
//查詢findall
findracer finder = new findracer("ferriai");
foreach (racer r in racers.findall(new predicate(finder.drivingcarpredicate)))//predicate是乙個泛型的委託
console.writeline("/n----------find method demo-------------");
//find方法(若找到的結果不止一條時,顯示第一條)
findracer f2 = new findracer("mclaren-mercedes");
racer r2 = racers.find(new predicate(f2.drivingcarpredicate));
if (r2 != null)
else
console.writeline("/n----------findlast method demo-------------");
findracer f3 = new findracer("mclaren-mercedes");
racer r3 = racers.findlast(new predicate(f2.drivingcarpredicate));
if (r3 != null)
else
console.readline();}}
/**
/// 查詢racer的類(根據car查詢)
///
public class findracer
public bool drivingcarpredicate(racer r)
}/**
/// racer類
///
public class racer
}private string _car;
public string car
}public racer(string name, string car)
public override string tostring()
執行結果:
michael schumacher,ferriai
juan pablo montoya,mclaren-mercedes
kimi railkkonen,mclaren-mercedes
mark webber,williams-bmw
rubens barichello,ferriai
----------findall method demo-------------
michael schumacher,ferriai
rubens barichello,ferriai
----------find method demo-------------
juan pablo montoya,mclaren-mercedes
----------findlast method demo-------------
kimi railkkonen,mclaren-mercedes
泛型委託例項
先來看一下典型的window控制項的事件處理方式,舉兩個例子,乙個button的mouseclick事件,乙個linklabel的linkclicked事件 this button1.mouseclick new system.windows.forms.mouseeventhandler this...
泛型之泛型類
public class a 構造引數型別上使用泛型 public a t t 方法返回值上使用泛型 public t gett 方法的引數上使用泛型 這是泛型類的方法,而不是泛型方法 public void sett t t 方法的返回值和引數型別上使用泛型 public t foo t t pu...
泛型之泛型類
public class a 構造引數型別上使用泛型 public a t t 方法返回值上使用泛型 public t gett 方法的引數上使用泛型 這是泛型類的方法,而不是泛型方法 public void sett t t 方法的返回值和引數型別上使用泛型 public t foo t t pu...