摘要: 1. 什么是局部类型?C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。局部类型适用于以下情况:(1) 类型特别大,不宜放在一个文件中实现。(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。(3) 需要多人合作编写一个类。局部类型是一个纯语言层的编译处理,不影响任何执行机制——事实上C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类。 public partial class Program { static void Main(string[] args) { } } 阅读全文
posted @ 2012-11-19 12:29 水月小妖 阅读(3669) 评论(0) 推荐(1) 编辑
摘要: 转载的,供自己学习案例是要实现一个对文档文本进行字符处理,并能筛选分离出文档中的单词,且可以以序列索引来对其中的单词进行访问和修改完整代码View Code using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 索引2{ class Program { static void Main(string[] args) { Document mydoc = new Document("Hello,I am a... 阅读全文
posted @ 2012-11-16 17:09 水月小妖 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 转载的问题:为什么c#中要有ref和out?(而java中没有)需求假设:现需要通过一个叫Swap的方法交换a,b两个变量的值。交换前a=1,b=2,断言:交换后a=2,b=1。现编码如下:class Program { static void Main(string[] args) { int a = 1; int b = 2; Console.WriteLine("交换前\ta={0}\tb={1}\t",a,b); Swap(a,b); Console.WriteLine("交换后\ta={0}\tb={1}\t",a,b); Console.Re 阅读全文
posted @ 2012-11-16 14:54 水月小妖 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 我们在编写程序的时候,经常遇到两个模块的功能非常相像,只是一个是处理int类型,另一个是处理string类型,或者是其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一个办法,在方法中传入通用的数据类型,这样就可以合并代码了。泛型的出现正是为解决这个问题的。 为什么要使用泛型为了了解这个问题,我们先看下面的代码,代码中省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型:public class Stack{ private int[] m_item; public int pop() {} public void push(i 阅读全文
posted @ 2012-11-09 17:50 水月小妖 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 转载的 经常听说,并且经常在书上看到:值类型部署在栈上,引用类型部署在托管堆上。实际上并没有这么简单。 MSDN上说:托管堆上部署了所有引用类型。这很容易理解。当创建一个应用类型变量时:1.objectreference=newobject(); 关键字new将在托管堆上分配内存空间,并返回一个该内存空间的地址。左边的reference位于栈上,是一个引用,存储着一个内存地址;而这个地址指向的内存(位于托管堆)里存储着其内容(一个System.Object的实例)。下面为了方便,简称引用类型部署在托管推上。 再来看值类型。《C#语言规范》上的措辞是“结构体不要求在堆上分配内存(However, 阅读全文
posted @ 2012-11-09 15:44 水月小妖 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 转载的,保存在此以备查看所属命名空间:System.Collections.GenericpublicclassList<T> :IList<T>,ICollection<T>,IEnumerable<T>,IList,ICollection,IEnumerableList<T>类是ArrayList类的泛型等效类。该类使用大小可按需动态增加的数组实现IList<T>泛型接口。泛型的好处:它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到 阅读全文
posted @ 2012-11-09 15:42 水月小妖 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 网上找的资料,记录下来供自己学习查阅:实现一个C# delegate是很简单的,通过以下3个步骤即可实现一个delegate: 1. 声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型。 2. 创建delegate对象,并将你想要传递的函数作为参数传入。 3. 在要实现异步调用的地方,通过上一步创建的对象来调用方法。 C# event C#中的事件处理实际上是一种具有特殊签名的delegate,象下面这个样子: public delegate void MyEventHandler(object sender, MyEventArgs e); 其中的两个参数,se 阅读全文
posted @ 2012-11-06 16:42 水月小妖 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 很多时候需要将某段C# 代码写在配置文件中,后续需要时进行编译;比如,在配置文件中配置上“"echo.shine"=="echo.shine"”,然后将此段配置文件放进下面的方法中进行编译,就会得出true的值。View Code publicstaticboolgetExpressionValue(stringexpression){CSharpCodeProviderprovider=newCSharpCodeProvider();CompilerParametersparameter=newCompilerParameters();paramete 阅读全文
posted @ 2012-11-06 16:36 水月小妖 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 一:关于XML文档用XMLSchema验证:1 XML文档中必须添加命名空间:如果没有添加,则要在验证前,给XML文档以code的方式添加进去,总之,要验证XML文档必须添加命名空间2 命名空间必须和XMLSchema中的命名空间一致。1 XML文档这个是XML的命名空间,如要验证,则必须添加(可以在XML文档中直接添加,也可以验证的时候在代码中添加)<?xmlversion="1.0"encoding="utf-8"?><SectionTablesxmlns="http://tempuri.org/SectionTableU 阅读全文
posted @ 2012-11-06 16:26 水月小妖 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 字符串处理中经常会用到,贴在这里以备后续查阅。使用:List<string>variables=SubStringByTwoChar("{","}","hfasfk{fdfd}yuyuy{888}ff{55}uuu{}dgdgd{89}");publicstaticList<string>SubStringByTwoChar(stringtempStra,stringtempStrb,stringinitStr){List<string>SubStr=newList<string>(); 阅读全文
posted @ 2012-11-06 15:49 水月小妖 阅读(733) 评论(0) 推荐(0) 编辑