程式例項之泛型

2021-04-18 23:58:29 字數 1653 閱讀 6177

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...