摘要:
LINQ 语言集成查询 (LINQ) 是 Visual Studio 2008 中引入的一组功能,它在对象领域和数据领域之间架起了一座桥梁。可为 C# 和 Visual Basic 语言语法提供强大的查询功能。 LINQ 引入了标准、易学的数据查询和更新模式,该技术可以扩展为几乎支持任何类型的数据存储。Visual Studio 包含 LINQ 提供程序的程序集,借助这些程序集,就能将 LINQ 用于 .NET Framework 集合、SQL Server 数据库、ADO.NET 数据集和 XML 文档。LINQ应用场景LINQ to Object:针对数组和集合LINQ toXML:针对. 阅读全文
摘要:
Attributes 特性 公共语言运行时允许添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。定制特性attribute,本质上是一个类,其为目标元素提供关联附加信息,并在运行期以反射的方式来获取附加信息。attibute实例,是在编译期进行初始化,而不是运行期。定制特性类型,必须直接或者间接的继承自System.Attribute类,而且该类型必须有公有构造函数来创建其. 阅读全文
摘要:
Dispose 类型的 Dispose 方法应释放它拥有的所有资源。它还应该通过调用其父类型的 Dispose 方法释放其基类型拥有的所有资源。该父类型的 Dispose 方法应该释放它拥有的所有资源并同样也调用其父类型的 Dispose 方法,从而在整个基类型层次结构中传播此模式。若要确保始终正确地清理资源,Dispose 方法应该可以被多次调用而不引发任何异常。Dispose 方法应该为它处置的对象调用 GC.SuppressFinalize 方法。如果对象当前在终止队列中,GC.SuppressFinalize 防止其 Finalize 方法被调用。请记住,执行 Finalize 方法. 阅读全文
摘要:
强引用 如果应用程序的代码可以访问一个正由该程序使用的对象,垃圾回收器就不能收集该对象, 那么,就认为应用程序对该对象具有强引用。要建立强引用并重新使用该对象,请将 WeakReference 的 Target 属性强制转换为该对象的类型。如果 Target 属性返回 null,则表示对象已被收集;否则,您可继续使用该对象,因为应用程序已重新获得了对它的强引用。弱引用弱引用允许应用程序访问对象,同时也允许垃圾回收器收集相应的对象。如果不存在强引用,则弱引用的有限期只限于收集对象前的一个不确定的时间段。使用弱引用时,应用程序仍可对该对象进行强引用,这样做可防止该对象被收集。但始终存在这样的风险. 阅读全文
摘要:
GC 垃圾回收.NET Framework 的垃圾回收器管理应用程序的内存分配和释放。每次您使用 new 运算符创建对象时,运行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。但是,内存不是无限大的。最终,垃圾回收器必须执行回收以释放一些内存。垃圾回收器优化引擎根据正在进行的分配情况确定执行回收的最佳时间。当垃圾回收器执行回收时,它检查托管堆中不再被应用程序使用的对象并执行必要的操作来回收它们占用的内存。在内存大于 2GB 的服务器中,可能需要在 boot.ini 文件中指定 /3GB 开关,以避免当内存仍可供系统使用时出现明显的内存不足问题。当使用非 阅读全文
摘要:
泛型 泛型将类型参数的概念引入 .NET Framework,类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候。例如,通过使用泛型类型参数 T,您可以编写其他客户端代码能够使用的单个类,而不致引入运行时强制转换或装箱操作的成本或风险。 使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。泛型最常见的用途是创建集合类。可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。可以对泛型类进行约束以访问特定数据类型的方法。关于泛型数据类型中使用的类型的信息可在运行时通过反射获取。public class Gen.. 阅读全文
摘要:
接口 接口是一组抽象成员的集合,表示某个类或结构可以选择去实现的行为,描述的是可属于任何类或结构的一组相关功能。接口方法的实现是在实现接口的类中完成的,实现接口的类可以显式实现该接口的成员,显式实现的成员不能通过类实例访问,而只能通过接口实例访问。接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型。 它不能包含静态成员。 接口成员是自动公开的,且不能包含任何访问修饰符。关键字interface可包含成员方法属性索引器事件备注接口类似于抽象基类:实现接口的任何非抽象类型都必须实现接口的所有成员。不能直接实例化接口。接口不包含方法的实现。类和结构可继承多个接口,但继承的基类必须放在第一. 阅读全文
摘要:
functionfnCreate(src) { /* 要创建的div的classname */varClassName ="thumbviewbox";if(src =='') {returnfalse; } /* 优先创建图片,如果图片没有加载成功,回调自己 */varimg = document.createElement('img'); img.setAttribute('src', src); //显示图片的大小varimgwd ="300px";varimghg ="300px" 阅读全文
摘要:
Lambda概述 lambda 表达式是一个可用于创建委托或表达式树类型的匿名函数。 通过使用 lambda 表达式,可以可作为参数或返回编写本地函数,该函数调用的值。 Lambda 表达式用于编写 LINQ 查询表达式特别有用。 若要创建 lambda 表达式,则在 lambda 运算符 =>的左侧指定输入参数 (如果有),因此,您放置表达式或语句在另一端块。 例如,lambda 表达式 x => x * x 指定名为 x 的参数并返回 x 的值计算的。=> 运算符具有与赋值运算符 (=) 相同的优先级,并且是右结合运算符。Lambda 在基于方法的 LINQ 查询中用作标 阅读全文
摘要:
public static void CreateExcel(DataSet ds) { string filename = DateTime.Now.ToString("yyyyMMddHHmmssff") + ".xls"; HttpContext.Current.Response.Conten... 阅读全文
摘要:
事件概述 在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。特点发行者确定何时引发事件,订户确定执行何种操作来响应该事件。一个事件可以有多个订户。一个订户可处理来自多个发行者的多个事件。没有订户的事件永远不会被调用。事件通常用于通知用户操作如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序,也可以设置异步调用事件。可以利用事件同步线程。事件是基于 EventHandler 委托和 EventArgs 基类的。事件的订阅和取消订阅如果您想编写引发事件时调用的自定义代码,则可以订阅由其他类发布的事. 阅读全文
摘要:
委托类型定义 C#编译器处理委托时,先自动产生一个派生自System.MulticastDelegate的密封类。这个类与它的基类System.Delegate一起为委托提供必要的基础设施,以维护以后将要调用的方法列表。它含有3个编译器生成的方法,这3个方法的参数与返回值基于委托的声明。public sealed class DelegateName :System.MulticastDelegate{ public DReturnType Invoke (DParams); public IAsyncResult BeginInvoke(DParams,AsyncCallback cb... 阅读全文
摘要:
程序集程序集(assembly)是一个或多个托管模块,以及一些资源文件的逻辑组合。组成部分Windows文件首部CLR文件首部程序集清单类型元数据MSIL(CIL)代码嵌入资源集作用代码重用确定类型边界可版本化的单元自描述的可配置的命名空间一个程序集内相关类型的一个分组,一个程序集可以包含任意个命名空间,每个命名空间又可以包含多种类型。根命名空间SystemMicrosoft解决命名冲突使用完全限定名使用别名嵌套命名空间namespace A{ namespaceB { }}GAC:全局程序集缓存GAC全称是Global Assembly Cache,是可以存放一些有很多程序都要用到的公共.. 阅读全文
摘要:
封装 对象的内部数据不应该从对象的实例直接访问,如果调用者想改变对象的状态就要使用访问方法(getter)和修改方法(setter),封装提供了一种保护状态数据完整性的方法,可用于验证输入数据是否符合业务规则。实现方式访问方法和修改方法属性继承 新的类可以从其他类中继承利用他们既有的功能。这是通过以下方式实现的:在声明类时,在类名称后放置一个冒号,然后在冒号后指定要从中继承的类(即基类)。语法public class A{ public A() { }}public class B : A{ public B() { }}代码重用is-a:继承has-a:包含、委托模型基类一个... 阅读全文
摘要:
异常处理 可以使用 TryCatch 活动处理方法执行期间引发的异常。 可以对这些异常进行处理,或者使用 Rethrow 活动重新引发异常。 Finally 节中的活动在 Try 节或 Catches 节完成时执行。 捕获异常后进行记录并保证程序可以继续正常使用。异常处理四要素一个表示异常详细信息的类类型一个向调用者引发异常类实例的成员调用者的一段调用异常成员的代码块调用者的一段处理将要发生异常的代码块异常类类型基类:System.Exception系统级异常:System.SystemException应用程序级异常:System.ApplicationException关键字trycat. 阅读全文