**如果集合的数目固定并且不涉及转型,使用数组效率高;否则使用List<T>泛型集合。
**foreach不能完全替代for的一个原因是在迭代过程中不能对集合本身进行增删操作,for可以。
**总是优先考虑泛型,无论是泛型类还是泛型方法都同时具备可重用性、类型安全和高效率等特性,这都是非泛型无法具备的。
**为泛型参数设定约束,可以让泛型参数有更多的行为和属性,如下:
class SalaryComputer
{
public int Compare<T>(T t1,T t2) where T : Salary{
{
if(t1.BaseSalary > t2.BaseSalary)
{
return 1;
}
......
}
}
**异步和多线程不可混为一谈,计算密集型工作采用多线程;IO密集型工作采用异步机制。
.Net中的异步执行其实使用的是异步委托。异步委托将要执行的方法提交到.net的线程池,由线程池中的线程来执行异步方法。
**线程分为前台线程、后台线程。必须前台线程全退出,应用程序才算退出;后台线程没有这个限制,应用程序退出后台线程一并退出。通过IsBackground属性设置。
**