2007-07-07

 

C#2.0 首次使用匿名方法

从知道C#2.0引入了匿名方法后,这还是首次使用:-)
goodsIDs是List<int>,为了拼接SQL文,使用String.Join方法,可遗憾的是,它只支持字符型数组,在不想写个循环的情况下,选择使用Array的转换方法,但它需要一个委托方法来进行类型转换。本就想省事,当然也不想新建一个方法,于是想到了匿名方法,由此有了第一次体验,呵呵,感觉挺有趣的,和JavaScript的prototype指定一个无名称的function差不多。

// 生成SQL文
sql.AppendLine("UPDATE LINGS_GOODS");
sql.AppendLine(" SET LINKID=0");
sql.AppendLine(
String.Format("ID IN (@GOODSID{0})",
String.Join(",@GOODSID",
goodsIDs.ConvertAll<string>(new Converter<int,string>(delegate(int value) { return value.ToString(); })).ToArray())),
true);

不过,最终也没有使用匿名方法,因为想起来框架中有现成的转换方法可用:
// 生成SQL文
sql.AppendLine("UPDATE LINGS_GOODS");
sql.AppendLine(" SET LINKID=0");
sql.AppendLine(
String.Format("ID IN (@GOODSID{0})",
String.Join(",@GOODSID",
goodsIDs.ConvertAll<string>(new Converter<int,string>(Convert.ToString)).ToArray())),
true);

连C# 2.0的新特性都还没体验过,C# 3.0已经出来了,感叹这世界变化太快 :-)

Labels:


Comments: Post a Comment





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]

/**/