三,关于泛型集合,能用则用
用Array,ArrayList,Dictionary等存储对象集合,面临的不只是拆装箱性能损耗的问题。从系统架构角度讲, 所有对象对象都应该是强类型的。为了解决这个问题,从.Net2开始,便有了泛型。看如下代码:
public
class
Mobile
{
private ArrayList friends = new ArrayList();//这里用ArrayList便不足取
public void Add (IFriend f)
{
friends.Add(f)
}
private void SayBless()
{
for ( int i = 0 ; i < friends.Count; i ++ )
{
IFriend f riend = (IFriend )friends[i];//这里拆装时,必须知道其元素的类型是IFriend
friend.Say ();
}
}
}
{
private ArrayList friends = new ArrayList();//这里用ArrayList便不足取
public void Add (IFriend f)
{
friends.Add(f)
}
private void SayBless()
{
for ( int i = 0 ; i < friends.Count; i ++ )
{
IFriend f riend = (IFriend )friends[i];//这里拆装时,必须知道其元素的类型是IFriend
friend.Say ();
}
}
}
这一条小技巧的建议便是:使用泛型集合避免显式类型转换。如果您的代码中有显式转换,或者有as操作,可 能需要重新考虑一下架构。as操作符用起来看似优雅,但若用于类型转换不用也罢。