2012年9月28日

静态类和静态类成员(转载)

摘要: 静态类和静态类成员静态类静态类必须直接从基类System.Object派生,这是因为从其他基类型派生的类由于继承性仅适用于对象的缘故而没有任何意义,而且不能创建静态类的实例。 静态类不能实现任何接口,这是因为只有使用类的实例时才去调用类的接口。 静态类只能定义静态成员(字段、方法、属性和事件),任何实例成员都将导致编译器产生错误。 静态类不能用作字段、方法、参数或者局部变量,这是因为这些用法都将导致编译器错误。 下面的代码是静态类的范例,该类定义了一些静态成员;该代码可以通过编译(不过会出现警告信息),但这个类没有做任何有意义的事情。 usingSystem;public static cla 阅读全文

posted @ 2012-09-28 10:31 baixp2008 阅读(139) 评论(0) 推荐(0)

静态类与静态类成员(转载)

摘要: 静态类与静态类成员静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。 静态类类可以声明为 static 的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。使用静态类来包含不与特定对象关联的方法。例如,创建一组不操作实例数据并且不与代码中的特定对象关联的方法是很常见的要求。您应该使用静态类来包含那些 阅读全文

posted @ 2012-09-28 10:31 baixp2008 阅读(180) 评论(0) 推荐(0)

C# 参考之访问关键字:base、this(转载)

摘要: C# 参考之访问关键字:base、thisbasebase 关键字用于从派生类中访问基类的成员:调用基类上已被其他方法重写的方法。指定创建派生类实例时应调用的基类构造函数。基类访问只能在构造函数、实例方法或实例属性访问器中进行。示例:在派生类中调用基类方法。//base关键字//访问基类成员usingSystem;publicclassBaseClass{protectedstring_className="BaseClass";publicvirtualvoidPrintName(){Console.WriteLine("ClassName:{0}", 阅读全文

posted @ 2012-09-28 10:30 baixp2008 阅读(190) 评论(0) 推荐(0)

彻底学通string.Format以及IFormattable,IFormatProvider,ICustomFormatter

摘要: 彻底学通string.Format以及IFormattable,IFormatProvider,ICustomFormatter自从使用.net以来就一直都在使用string.Format方法,一直没有空或者其他原因都没有深入去了解,主要还是因为项目上似乎没有这么高的要求,也没必要去深入了解,就算碰到了自定义的格式化内容也是写几个通用的方法而已。今天空下来仔细去理解了一下,在这里和大家分享一下,也希望大家一起交流。string.Format方法是string类提供的静态方法,一般最多使用的是其两个参数的重载,例如:varname="Zhezhe";varmsg=string 阅读全文

posted @ 2012-09-28 10:29 baixp2008 阅读(212) 评论(0) 推荐(0)

IEnumerable 和 IEnumerator 接口

摘要: IEnumerable 和 IEnumerator 接口IEnumerator:提供在普通集合中遍历的接口,有Current,MoveNext(),Reset(),其中Current返回的是object类型。IEnumerable: 暴露一个IEnumerator,支持在普通集合中的遍历。IEnumerator<T>:继承自IEnumerator,有Current属性,返回的是T类型。IEnumerable<T>:继承自IEnumerable,暴露一个IEnumerator<T>,支持在泛型集合中遍历。1. 要使自定义的集合类型支持foreach访问,就要实 阅读全文

posted @ 2012-09-28 10:22 baixp2008 阅读(153) 评论(0) 推荐(0)

面向对象编程OOP的三大特性

摘要: 面向对象编程OOP的三大特性面向对象的三个基本特征是:封装、继承、多态。 封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritanc 阅读全文

posted @ 2012-09-28 10:22 baixp2008 阅读(399) 评论(0) 推荐(0)

IEnumerable IEnumerator 接口

摘要: IEnumerable IEnumerator 接口一直以来,搞不懂IEnumerable与IEnumerator这两个接口的区别,今天看了一下MSDN并在网上搜了一把关于他们的区别,似乎理解了,但还是弄不懂他们最主要的区别是什么。看看MSDN是怎么定义他们的吧。 //公开枚举数,该枚举数支持在非泛型集合上进行简单迭代 public interface IEnumerable { //返回可循环访问集合的枚举数 IEnumerator GetEnumerator(); } //支持... 阅读全文

posted @ 2012-09-28 10:21 baixp2008 阅读(188) 评论(0) 推荐(0)

.NET学习之Foreach……

摘要: .NET学习之Foreach…… 对于.NET Framework提供的“标准”的集合类型可以直接使用foreach,如(Array、ArrayList、HashTable),除此之外,对于自定义的集合对象,也可以使其支持foreach的使用,只要实现IEnumerable接口即可(刚提到的几种集合类型都实现了这个接口)。先看个例子:publicclassHelloCollection:IEnumerable{publicIEnumeratorGetEnumerator(){yieldreturn"Hello";yieldreturn"World";}} 阅读全文

posted @ 2012-09-28 10:20 baixp2008 阅读(485) 评论(0) 推荐(1)

C#集合

摘要: C#集合System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。System.Collections.Specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典、位向量以及只包含字符串的集合。 在System.Collections命名空间中提供了许多接口:IEnumerable循环集合项目 ICollection可以获取集合中项目 阅读全文

posted @ 2012-09-28 10:19 baixp2008 阅读(231) 评论(0) 推荐(0)

定义泛型集合的命名空间:System.Collections.Generic

摘要: 定义泛型集合的命名空间:System.Collections.Generic本章导读System.Collections.Generic和System.Collections集合的结构有很多相似之处,不同的是“Generic”提供的都是泛型集合,而“Collections”中的集合并不都支持泛型。System.Collections.Generic是在C# 2.0中新加的命名空间,主要用来创建强类型集合,以提高类型安全和操作性能。本章的讲解流程如图8-1所示。图8-1 System.Collections.Generic的讲解流程8.1 System.Collections.Generic简介 阅读全文

posted @ 2012-09-28 10:18 baixp2008 阅读(665) 评论(0) 推荐(0)

C#集合类

摘要: C#集合类1.System.Colloctions中表示集合的行为的接口有:1)ICollection定义所有集合的大小、枚举数和同步方法。派生于IEnumerable它定义了集合类最基本的行为,所有的集合类都实现了这个接口(基接口)但是它的行为太过基本:主要就是一个Count属性,单独实现它没有太大意义2)IEnumerable公开枚举数,该枚举数支持在集合上进行简单迭代它只有一个方法 GetEnumerator(),该方法可以返回一个IEnumerator接口,通过它可以遍历集合基本上所有的集合类都实现了这个接口3)IListIList实现是可排序且可按照索引访问其成员的值的集合,它本身实 阅读全文

posted @ 2012-09-28 10:17 baixp2008 阅读(180) 评论(0) 推荐(0)

小议foreach

摘要: 小议foreach 今天给一个同事讲一个程序,应该是一个比较基础的程序,但是把我给难住了(哎,才发现自己的基础也滥的可以了),程序大概是这样的: public class MyStringArray : IEnumerable { public IEnumerator GetEnumerator() { return (IEnumerator)new MyStringArrayEnumerator(this); } public MyStringArray(params string[] Strings) { strings = new string[10]; foreach(string s 阅读全文

posted @ 2012-09-28 10:17 baixp2008 阅读(141) 评论(0) 推荐(0)

ref和out的区别

摘要: ref和out的区别ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。注:在C#中,方法的参数 阅读全文

posted @ 2012-09-28 10:16 baixp2008 阅读(132) 评论(0) 推荐(0)

迭代器

摘要: 迭代器迭代器概述迭代器是可以返回相同类型的值的有序序列的一段代码。迭代器可用作方法、运算符或 get 访问器的代码体。迭代器代码使用 yield return 语句依次返回每个元素。yield break 将终止迭代。有关更多信息,请参见 yield。可以在类中实现多个迭代器。每个迭代器都必须像任何类成员一样有唯一的名称,并且可以在 foreach 语句中被客户端代码调用,如下所示:foreach(int x in SampleClass.Iterator2){}迭代器的返回类型必须为 IEnumerable、IEnumerator、IEnumerable<T> 或 IEnumer 阅读全文

posted @ 2012-09-28 10:15 baixp2008 阅读(179) 评论(0) 推荐(0)

程序集

摘要: 程序集在C#中,我们要使用反射,主要有三个方面:第一,反射程序集,模块,类的成员以及成员的一些信息;第二,接下来就是动态调用类的成员方法;第三个方面就动态产生程序集,模块和类以及类的成员。我们要使用反射,首先要搞清楚以下命名空间中几个类的关系:System.Reflection命名空间AppDomain:应用程序域,可以将其理解为一组程序集的逻辑容器Assembly:程序集类Module:模块类Type:使用反射得到类型信息的最核心的类他们之间是一种从属关系,也就是说,一个AppDomain可以包含N个Assembly,一个Assembly可以包含N个Module,而一个Module可以包含N 阅读全文

posted @ 2012-09-28 10:14 baixp2008 阅读(293) 评论(0) 推荐(0)

解决方案、项目、程序集、命名空间

摘要: 解决方案、项目、程序集、命名空间一、解决方案、项目、程序集、命名空间初学者很容易把这些概念搞混淆。先说说项目(Project),通俗的说,一个项目可以就是你开发的一个软件。在.Net下,一个项目可以表现为多种类型,如控制台应用程序,Windows应用程序,类库(Class Library),Web应用程序,Web Service,Windows控件等等。如果经过编译,从扩展名来看,应用程序都会被编译为.exe文件,而其余的会被编译为.dll文件。既然是.exe文件,就表明它是可以被执行的,表现在程序中,这些应用程序都有一个主程序入口点,即方法Main()。而类库,Windows控件等,则没有这 阅读全文

posted @ 2012-09-28 10:14 baixp2008 阅读(127) 评论(0) 推荐(0)

动态创建方法和使用msil指令动态写入方法一(了解ILGenerator)

摘要: 动态创建方法和使用msil指令动态写入方法一(了解ILGenerator)之前讲过关于如何动态创建和使用程序集、类、方法、字段、属性等两篇文章,第一篇主要讲了介绍动态创建类型的一些基本知识和如何创建程序集、类等,第二篇主要介绍的是如何使用动态创建的程序集,调用动态创建类的方法等的一个完整DEMO。今天讲的其实也是关于在动态创建类型里,如何动态的创建一个较复杂的方法,当然今天这一篇主要着重以介绍如何ILGenerator和一些概念,下一篇就来介绍MSIL指令集。 何为MSIL(中间语言),我想大家都可能认识它,但是完全了解它和使用它的我估计大家都要跟我一样还得继续学习MSIL。那我也就不介绍了, 阅读全文

posted @ 2012-09-28 10:13 baixp2008 阅读(272) 评论(0) 推荐(0)

C#动态创建和动态使用程序集、类、方法、字段等(二)

摘要: C#动态创建和动态使用程序集、类、方法、字段等(二) 上一节讲了如何动态的创建,这一节就要讲创建了我们需要如何使用了,这当然也是非常重要的, 是吧。创建了动态类型但是又不使用,那创建它有什么用了。呵呵,今天我们就来一起学习动态使用动态创建的类型。当然我们跟上一章一样要对这些动态类型的使用类型进行一些了解。类:使用System.Type(任何时候都是反射出类型进行使用,难道不是吗?)构造函数:System.Reflection.ConstructorInfo(发现类构造函数的属性并提供对构造函数元数据的访问权)事件:System.Reflection.EventInfo(发现事件的属性并提供对事 阅读全文

posted @ 2012-09-28 10:13 baixp2008 阅读(225) 评论(0) 推荐(0)

C#动态创建和动态使用程序集、类、方法、字段等(一)

摘要: C#动态创建和动态使用程序集、类、方法、字段等(一)有时候在整个项目架构里也需要动态创建程序集的需求,那如何创建程序集呢,请跟我来学习一下吧。 首先需要知道动态创建这些类型是使用的一些什么技术呢?其实只要相关动态加载程序集呀,类呀,都是使用反射,那么动态创建也一样使用的是反射,是属于反射的技术!也就是将对象或者数据映射成一个对象或者程序集保存起来而已。 首先我们需要了解每个动态类型在.net中都是用什么类型来表示的。程序集:System.Reflection.Emit.AssemblyBuilder(定义并表示动态程序集)构造函数:System.Reflection.Emit.Constr.. 阅读全文

posted @ 2012-09-28 10:13 baixp2008 阅读(408) 评论(0) 推荐(0)

动态创建方法和使用msil指令动态写入方法二(了解MSIL指令)

摘要: 动态创建方法和使用msil指令动态写入方法二(了解MSIL指令)前一章着重介绍了ILGenerator,今天我们就要学习msil指令了,在我们动态创建方法里有一个类里属性都是包含着MSIL指令集,所以了我们只需要掌握了该类的这些字段也就可以使用任何托管的语言进行动态的使用MSIL指令集了。这个类就是System.Reflection.Emit.OpCodes类。该类的MSDN上的介绍是通过 ILGenerator 类成员(例如 Emit)为发出提供 Microsoft 中间语言 (MSIL) 指令的字段表示形式。例如:Code highlighting produced by Actipro 阅读全文

posted @ 2012-09-28 10:12 baixp2008 阅读(275) 评论(0) 推荐(0)

C# 事件处理机制

摘要: C# 事件处理机制事件简介: 任何进行过图形用户界面开发的编程人员都会知道事件的概念。当用户在使用程序的时候,用户必然要和程序进行一定的交互。比如当用户点击窗体上的一个按钮后,程序就会产生该按钮被点击的事件,并通过相应的事件处理函数来响应用户的操作。这样用户的直观感觉就是程序执行了我要求的任务了。当然,事件并不一定是在和用户交互的情况下才会产生的,系统的内部也会产生一些事件并请求处理的,比如时钟事件就是一个很好例子。不过要介绍C#中的事件处理机制(扩展到更广的范围便是整个.Net框架),我们首先得明白一个叫"委托"的概念。 C#中的委托: 委托,顾名思义,就是中间代理人的意 阅读全文

posted @ 2012-09-28 10:11 baixp2008 阅读(246) 评论(0) 推荐(0)

C#的事件处理机制

摘要: C#的事件处理机制今天,花费了一下午事件,终于算是了解了事件的处理机制。在C#中,对于事件的应用其实可以有四个步骤。1.在事件发行者中定义一个事件2.在事件发行者触发事件3.在事件订阅者中处理事件的处理程序4.向事件发行者订阅事件.在C#中事件是经常被用到的一种概念。如果要实现一个事件,首先要有两个对象,一个是触发事件的对象,一个是处理事件的对象。二者通过一个委托被联系在一起一个简单的例子,老公发工资了,老婆、儿子会自动获得他的工资,呵呵!CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www 阅读全文

posted @ 2012-09-28 10:10 baixp2008 阅读(210) 评论(0) 推荐(0)

C#正则表达式整理备忘

摘要: C#正则表达式整理备忘有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的《C#字符串和正则表达式参考手册》学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找《C#字符串和正则表达式参考手册》时,已经不知所踪了。现在用到正则的时候也比较少,把以前的笔记等整理一下,以志不忘。(1)“@”符号符下两ows表研究室的火热,当晨在“@”虽然并非C#正则表达式的“成员”,但是它经常与C#正则表达式出双入对。“@”表示,跟在它后面的字符串是个“逐字字符串”,不是很好理解,举个例子,以下两个声明是 阅读全文

posted @ 2012-09-28 10:09 baixp2008 阅读(152) 评论(0) 推荐(0)

C# 参考:反射 -- 学习笔记整理,概念与应用

摘要: C# 参考:反射 -- 学习笔记整理,概念与应用1. 什么是反射Reflection,中文翻译为 反射。 这是.Net中获取 运行时类型信息 的方式,.Net的应用程序由几个部分:'程序集(Assembly)’、'模块(Module)’、'类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如:通常程序员面试题,有这样关于反射的解释:反射可以动态地创建类型的实例,还可以将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。 Assembly类可以获得正在运行的装配件信息,也可以动 阅读全文

posted @ 2012-09-28 10:09 baixp2008 阅读(175) 评论(0) 推荐(0)

C#参考 : 枚举类型

摘要: C#参考 : 枚举类型一、 关于 类型再具体学习枚举类型之前,先了解一下C#的类型。 (1)值类型 (a)变量可以直接包含它们自己的数据;如 int i = 35;(b)局部变量总是放在栈(stack)中。·(2)引用类型 (a)变量间接指向它们的数据;(b)局部变量指向堆(heap)中的对象.枚举(enum) 值类型结构(struct) 值类型类(class) 引用类型接口(interface) 引用类型数组([ ]array ) 引用类型委托(delegate) 引用类型 关于两者的区别可以参考文章:C#参考 : 值类型和引用类型的区别 (深入详解) 也许,你对上面的例子感到一点 阅读全文

posted @ 2012-09-28 10:08 baixp2008 阅读(248) 评论(0) 推荐(0)

ASP.NET跨页面传值技巧总结

摘要: ASP.NET跨页面传值技巧总结1. 使用QueryString变量QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:a.aspx的C#代码private void Button1_Click(object sender, System.EventArgs e){ string s_url; s_url = "b.aspx?name=" + Label1.Text; Response.Redirect 阅读全文

posted @ 2012-09-28 10:07 baixp2008 阅读(93) 评论(0) 推荐(0)

实现IComparer

摘要: 实现IComparer现IComparer ,这样就可以在数组中或其它集合中自定义排序了,要实现其中的方法:public int Compare(object x, object y)CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem;usingSystem.Collections;//注意usingCollectionsusingSystem.Collections.Generic;usingSystem.Tex 阅读全文

posted @ 2012-09-28 10:07 baixp2008 阅读(172) 评论(0) 推荐(0)

实现ICompareable

摘要: 实现ICompareable实现ICompareable,使对象具有自定义的比较功能,只要实现其的一个方法(CompareTo)就可以了CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem;usingSystem.Collections;//注意usingCollectionsusingSystem.Collections.Generic;usingSystem.Text;namespaceZyyLove2008{c 阅读全文

posted @ 2012-09-28 10:06 baixp2008 阅读(115) 评论(0) 推荐(0)

ICompareable和IComparer结合 比较大小

摘要: ICompareable和IComparer结合 比较大小将ICompareable和IComparer结合 比较大小这儿注意的是PersonComparer的比较方法 CompareTo调用了Person对象的重载比较方法CompareTO public int CompareTo(object obj, PersonCompareType compareType){.....}这样的话,Person能根据Comparer传过来的参数,进行相应的排序比较按 Ctrl+C 复制代码CodeCode highlighting produced by Actipro CodeHighlighter 阅读全文

posted @ 2012-09-28 10:06 baixp2008 阅读(227) 评论(0) 推荐(0)

实现ICollection

摘要: 实现ICollection实现ICollection注意:ICollectioninherits IEnumerableCodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem;usingSystem.Collections;//注意usingCollectionsusingSystem.Collections.Generic;usingSystem.Text;namespaceCollectionTest{classP 阅读全文

posted @ 2012-09-28 10:05 baixp2008 阅读(196) 评论(0) 推荐(0)

c#的IList,IEnumerable和IEnumerator

摘要: c#的IList,IEnumerable和IEnumeratorIList 是 ICollection 接口的子代,并且是所有非泛型列表的基接口。IList 实现有三种类别:只读、固定大小和可变大小。无法修改只读 IList。固定大小的 IList 不允许添加或移除元素,但允许修改现有元素。可变大小的 IList 允许添加、移除和修改元素。下面的示例演示创建一个简单列表——固定大小列表的 IList 接口的实现。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter 阅读全文

posted @ 2012-09-28 10:04 baixp2008 阅读(224) 评论(0) 推荐(0)

实现 IEnumerable

摘要: 实现 IEnumerableusingSystem;usingSystem.Collections;//注意usingCollectionsusingSystem.Collections.Generic;usingSystem.Text;namespaceEnumerableTest{classProgram{staticvoidMain(string[]args){Personperson=newPerson();foreach(stringnameinperson){Console.WriteLine(name);}Console.Read();}}publicclassPerson:IE 阅读全文

posted @ 2012-09-28 10:04 baixp2008 阅读(136) 评论(0) 推荐(0)

XML 与DataSet 对象的关系

摘要: XML 与DataSet 对象的关系在.NET Framework 中,经常使用XML 作为存储和传输各种数据的格式。DataSet 中的数据可以转换成XML 的形式来表示和存储。我们可以使用XML 对象同步和转换DataSet 的数据,而DataSet 也可以存储和传输XML 格式的数据。 XML 与 DataSet 的关系如下图所示: DataSet 对象的常用方法如下:A. 使用ReadXml( ) 方法:从文件或流中加载XML 数据,填充DataSet 对象。 DataSet 对象.ReadXML( 文件路径字符串|stream 对象, XmlReadMode 枚举值[可以省略] ) 阅读全文

posted @ 2012-09-28 10:03 baixp2008 阅读(165) 评论(0) 推荐(0)

XML与DataSet的相互转换类

摘要: XML与DataSet的相互转换类XmlDatasetConvert 该类提供了四种方法:1、将xml对象内容字符串转换为DataSet2、将xml文件转换为DataSet3、将DataSet转换为xml对象字符串4、将DataSet转换为xml文件XmlDatasetConvert.csusing System;using System.Collections.Generic;using System.Text;using System.Data;using System.IO;using System.Xml;namespace XmlDesign{ class XmlDatasetCon 阅读全文

posted @ 2012-09-28 10:02 baixp2008 阅读(156) 评论(0) 推荐(0)

在C#.net中如何操作XML

摘要: 在C#.net中如何操作XML在C#.net中如何操作XML需要添加的命名空间:using System.Xml;定义几个公共对象:XmlDocument xmldoc ;XmlNode xmlnode ;XmlElement xmlelem ;1,创建到服务器同名目录下的xml文件:方法一:xmldoc = new XmlDocument ( ) ;//加入XML的声明段落xmlnode = xmldoc.CreateNode ( XmlNodeType.XmlDeclaration , "" , "" ) ;xmldoc.AppendChild ( 阅读全文

posted @ 2012-09-28 10:01 baixp2008 阅读(111) 评论(0) 推荐(0)

AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法小结(转载)

摘要: AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法小结(转载)让我们来看看同步异步的区别:同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作.NET框架基类库中有好几种类都可以提供同步和异步的方法调用。因为同步方法调用会导致程序流程中途等待,所以采用同步方法的情况下往往会导致程序执行的延迟相比来说,在某些条件下选择异步方法调用就可能更好一些例如,有的时候程序需要给多个Web服务发出请求,还有远程处理信道(HTTP、TCP)和代理,这时就最好采用 阅读全文

posted @ 2012-09-28 10:00 baixp2008 阅读(132) 评论(0) 推荐(0)

NET的异步调用和IAsyncResult接口

摘要: NET的异步调用和IAsyncResult接口1.关于委托的BeginInvoke和EndInvoke方法.NET Framework 允许您异步调用任何方法。为此,应定义与您要调用的方法具有相同签名的委托;公共语言运行库会自动使用适当的签名为该委托定义 BeginInvoke 和 EndInvoke 方法。例如:namespace carydemo2{ public class CaryAsync { public string LongtimeOperation(int data, out int threadId) { Console.WriteLine("Long time 阅读全文

posted @ 2012-09-28 10:00 baixp2008 阅读(200) 评论(0) 推荐(0)

事件揭秘

摘要: 事件揭秘趁着对委托的熟悉,我们就弄清楚事件吧,如果您还对委托不太了解,可以参考下这篇文章。 可能大多数人不太怎么关心事件是怎么形成的,只管一个控件上注册一个事件,然后再cs文件中填写相应该事件的代码,那么您如果想了解该方面的内容,希望本文对您有帮助。 事件允许进行一种交互。其实事件是作为类型的成员。定义一个事件成员意味着类型就为我们提供了三种能力。 *类型的静态方法或者对象的实例方法可以订阅类型事件。 *类型的静态方法或者对象的实例方法可以注销类型事件。 *事件发生时通知已订阅事件的方法 定义一个对外提供一个或者多个事件的类型,需要遵循以下四个步骤。一.定义一个用于存放所有需要发送给事件通知接 阅读全文

posted @ 2012-09-28 09:59 baixp2008 阅读(155) 评论(0) 推荐(0)

委托揭秘

摘要: 委托揭秘看到button.Click+=new EventHandler(button1_Click);又忘记其中间过程了 委托我始终是学一遍,忘一遍,一个原因是我没用经常用道它,久而久之就忘记了,另一个原因是因为我没有深入的学习它。今天所以我决定用心搞明白它。这也是必备知识。 首先我们看一个例子代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//声明一个委托类型,它的实例引用一个方法InternaldelegatevoidFeedbac 阅读全文

posted @ 2012-09-28 09:59 baixp2008 阅读(146) 评论(0) 推荐(0)

同步方法和异步方法的区别

摘要: 同步方法和异步方法的区别同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作异步编程概览.NET Framework 允许您异步调用任何方法。定义与您需要调用的方法具有相同签名的委托;公共语言运行库将自动为该委托定义具有适当签名的 BeginInvoke 和 EndInvoke 方法。BeginInvoke 方法用于启动异步调用。它与您需要异步执行的方法具有相同的参数,只不过还有两个额外的参数(将在稍后描述)。BeginInvoke 立即返回,不等待异步调用完成。BeginInvoke 返回 IasyncR 阅读全文

posted @ 2012-09-28 09:58 baixp2008 阅读(854) 评论(0) 推荐(0)

委托之异步学习(转载)

摘要: 委托之异步学习(转载)在 使用BackgroundWorker组件 一文中,阐述了在Winform编程中,使用BackgroundWorker组件实现异步调用,本文主要讲述利用委托实现异步。以下描述摘抄于MSDN:异步委托提供以异步方式调用同步方法的能力。当同步调用委托时,Invoke()方法直接对当前线程调用目标方法;当异步调用委托时,CLR将对请求进行排队并立即返回到调用方,将对来自线程池的线程调用该目标方法,提交请求的原始线程继续与目标方法并行执行,该目标方法是对线程池线程运行的.1)、BeginInvoke()方法BeginInvoke()方法启动异步调用,它与需要异步执行的方法具有相 阅读全文

posted @ 2012-09-28 09:57 baixp2008 阅读(147) 评论(0) 推荐(0)

委托 delegate ----同步、异步

摘要: 委托 delegate ----同步、异步using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.Runtime.Remoting.Messaging;namespace WindowsFormsApplication1{ publ 阅读全文

posted @ 2012-09-28 09:57 baixp2008 阅读(187) 评论(0) 推荐(0)

异步(BeginInvoke,EndInvoke)

摘要: 异步(BeginInvoke,EndInvoke)整个异步调用过程中都是围绕IAsyncResult来进行的,,BeginXXX返回这个对象,EndXXX接收这个对象来结束当前异步对象Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicinterfaceIAsyncResult{WaitHandleAsyncWaitHandle{get;}//阻塞一个线程,直到一个或多个同步对象接收到信号BooleanIsCompleted{get; 阅读全文

posted @ 2012-09-28 09:56 baixp2008 阅读(180) 评论(0) 推荐(0)

关于C#多线程之一——异步委托

摘要: 关于C#多线程之一——异步委托一、什么时候使用多线程 对于需要等待的操作如:文件操作、从网络加载信息等,此时可以使用一个线程进行这些操作,新开一个线程运行其他的操作,提高效率增加用户体验。典型的例子是word程序中的拼写检查器:一个线程等待用户输入,另一个线程进行后台搜索、第三个线程将写入的数据存储在临时文件中、第四个线程进行从internet上下载相关信息。二、c#使用线程的最简单方法——异步委托C#使用线程的方法很多其中使用委托(Delegate)的BeginEnvoke()方法和EndInvoke()是一个简单的方法。使用BeginInvoke方法步骤:1.创建一个要执行的函数如以下代码 阅读全文

posted @ 2012-09-28 09:55 baixp2008 阅读(220) 评论(0) 推荐(0)

ASP.NET页面之间传递值的几种方法

摘要: ASP.NET页面之间传递值的几种方法ASP.NET页面之间传递值的几种方法... 一.使用QueryString Request.QueryString 在ASP时代,这个是较常用的方法,到了ASP.NET,仿佛用的己未几了,但是不论怎样道,这是一个出有过期,且很值得推举的方法,由于不论是ASP还是ASP.NET,最基础的皆仍是基于HTTp协定的。 缺点长短常显明的,让在多个页面传递时,能够就Request不到了 使用QueryString在页面间传递值是一种非经常睹的方法,人们在ASP中便经常用到。 (1)长处和毛病 优点: 1.使用简双,关于平安性请求没有高时传递数字或者是白原值十分有效 阅读全文

posted @ 2012-09-28 09:53 baixp2008 阅读(180) 评论(0) 推荐(0)

Asp.Net添加信息的几种方法

摘要: Asp.Net添加信息的几种方法第一种DAL层 public static void AddUserMessage(string name,string pwd) { try { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into My_UserMessage("); strSql.Append("uname,password)"); strSql.Append(" values ("); strSql.Append("'&qu 阅读全文

posted @ 2012-09-28 09:53 baixp2008 阅读(213) 评论(0) 推荐(0)

ASP.NET实现页面间值传递的几种方法

摘要: ASP.NET实现页面间值传递的几种方法首先,打开你的查询分析器。。运行下列SQL代码。CREATE PROCEDURE dbo.oa_selectalluser AS select * from zz_Stock_Barcode 这个表可以改成对应的测试表,下面的也一样GOCREATE PROCEDURE dbo.oa_SelectByID @id intAS select * from zz_Stock_Barcode where ID=@idGO命令运行成功后你会看到存储过程中多了两条记录dbo.oa_selectalluser 和dbo.oa_SelectByID下面开始写操作aspx 阅读全文

posted @ 2012-09-28 09:52 baixp2008 阅读(119) 评论(0) 推荐(0)

ASP.NET 2.0 新手SQL存储过程简单实例入门 绝对经典入门

摘要: ASP.NET 2.0 新手SQL存储过程简单实例入门 绝对经典入门首先,打开你的查询分析器。。运行下列SQL代码。CREATE PROCEDURE dbo.oa_selectalluser AS select * from zz_Stock_Barcode 这个表可以改成对应的测试表,下面的也一样GOCREATE PROCEDURE dbo.oa_SelectByID @id intAS select * from zz_Stock_Barcode where ID=@idGO命令运行成功后你会看到存储过程中多了两条记录dbo.oa_selectalluser 和dbo.oa_SelectB 阅读全文

posted @ 2012-09-28 09:51 baixp2008 阅读(182) 评论(0) 推荐(1)

Asp.Net的DBHelper类

摘要: Asp.Net的DBHelper类using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration;namespace DAL{ public static class DBHelper { private static SqlConnection connection; public static SqlConnection Connection { get { string conn. 阅读全文

posted @ 2012-09-28 09:50 baixp2008 阅读(181) 评论(0) 推荐(0)

asp.net DbHelper 用法

摘要: asp.net DbHelper 用法using System.Data; using System.Data.Common; using System.Configuration; public class DbHelper { private static string dbProviderName = ConfigurationManager.AppSettings["DbHelperProvider"]; private static string dbConnectionString = ConfigurationManager.AppSettings[" 阅读全文

posted @ 2012-09-28 09:11 baixp2008 阅读(747) 评论(0) 推荐(0)

SQLhelper经典

摘要: SQLhelper经典SQLhelperusingSystem;usingSystem.Data;usingSystem.Xml;usingSystem.Data.SqlClient;usingSystem.Collections;///<summary>///SqlServer数据访问帮助类///</summary>publicsealedclassSqlHelper{#region私有构造函数和方法privateSqlHelper(){}///<summary>///将SqlParameter参数数组(参数值)分配给SqlCommand命令.///这个方 阅读全文

posted @ 2012-09-28 09:09 baixp2008 阅读(187) 评论(0) 推荐(0)

导航