上一页 1 2 3 4 5 6 ··· 16 下一页

2012年9月28日

小议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 阅读(138) 评论(0) 推荐(0) 编辑

C#集合类

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

posted @ 2012-09-28 10:17 baixp2008 阅读(176) 评论(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 阅读(128) 评论(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 阅读(170) 评论(0) 推荐(0) 编辑

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

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

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

程序集

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

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

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

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

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

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

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

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

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

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

posted @ 2012-09-28 10:13 baixp2008 阅读(266) 评论(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 阅读(265) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 16 下一页

导航