摘要: 通俗来讲,委托就是吩咐别人去做某件事,但不知道他具体会怎么做。使用委托必须注意的一个问题是内存泄露问题:假如委托实例本身不能被回收,委托实例会阻止他的目标被作为垃圾回收。尤其是假如某“短命”的对象调用了一个“长命”的对象中的事件,并用其自身作为目标。“长命”对象间接容纳了对“短命”对象的引用,延长了“短命”对象的寿命。下面是一个只为委托而委托的例子:delegate void StringProgressor(string input); //声明委托类型 class Person { string name; public Person(string name) { t... 阅读全文
posted @ 2013-09-24 15:27 蚂蚁拉车 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 假如有以下xml文件 首先引用Xml.Linq命名空间,然后用以下方法进行读取XDocument doc = XDocument.Load("XMLFile1.xml"); var filtered = from p in doc.Descendants("Product") join s in doc.Descendants("Supplier") on (int)p.Attribute("SupplierID") equals (int)s.Attribute("SupplierID") o 阅读全文
posted @ 2013-09-24 10:31 蚂蚁拉车 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 前两天公司进了一批书,在借阅jon skeet的c# in deep收获颇大,本书特点是介绍了不同版本的c#所增加的新特性。今天先写一下书中对linq的描述。 很多初学者在使用VS2010或2013写代码时都会看见软件会自动帮我们引用linq这个命名空间,而不知其作用。linq全称为language integrated query,即语言集成查询,是c#3的核心所在,可使对多数据源的查询变得简单。 比如一段代码有一个Products类,其包含Name和Price两个属性。我们现在需要在原基础上增加一个suppliers类,其包含Name和SupplierID两个属性,这样需要在Produc. 阅读全文
posted @ 2013-09-24 09:50 蚂蚁拉车 阅读(231) 评论(0) 推荐(0) 编辑