摘要:
原文:http://www.cnblogs.com/wlb/archive/2009/08/26/1554026.html1.用Where()方法进行筛选using System;using System.Linq;namespace ConsoleApplication3{ class Program { static void Main(string[] args) { int[] intary = { 1, 2, 3, 4, 5, 6, 7, 8, 89, 10 }; //查询所有能被2整除的元素 var query1 = intary.Where(num => num % 2 = 阅读全文
随笔分类 - C#
Lambda表达式
2012-05-30 14:33 by 假面Wilson, 265 阅读, 收藏,
摘要:
Lambda表达式实际上是一个匿名函数。它包含表达式和语句,常用于创建委托或表达式目录树类型。所有Lambda表达式都是用Lambda运算符---------- =>,该运算符读为“goesto”。Lambda运算符的左边是输入参数(可能没有),右边是表达式或语句块。Lambda表达式返回右边表达式的结果。其基本格式如下:(input paramenters)=>expression其中,parameters是一个参数列表,在Lambda只有一个输入参数时可以不适用括号,否则括号是必须的。两个或更多输入参数由括在括号中的逗号分隔,如以下代码所示,包括两个参数x和y。(x,y)=&g 阅读全文
1、1、2、3、5、8、13、21、34...... 求第X位数是多少,2种实现方式
2012-05-04 11:36 by 假面Wilson, 273 阅读, 收藏,
摘要:
经典的面试题,之前面试时写的不够好,回来后重新想了下,以下是2实现方式:方法一:【递归调用】 public int FooNum(int i) { if (i < 0) return 0; else if (i > 0 && i <= 2) return 1; else returnFooNum(i - 1) +FooNum(i - 2); } 方法二:【for循环】 public int AddNum(int x) { int f1 = 1; int f2 = 1; int f3 = 0... 阅读全文
Parse与TryParse的区别
2012-04-25 15:42 by 假面Wilson, 558 阅读, 收藏,
摘要:
Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者都可以解释为将类型转换为 int,那它们的区别是什么呢? Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32内部调用了 int.Parse: Convert.ToInt32 参数为 null 时,返回 0; int.Parse 参数为 null 时,抛出异常。 Convert.ToInt32 参数为"" 时,抛出异常; int.Parse 参数为"" 时,抛出异常。 Convert. 阅读全文
.net 构造器
2012-03-11 00:42 by 假面Wilson, 740 阅读, 收藏,
摘要:
构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:Platypus p1 = new Platypus(); 构造器可以用来在初始化对象时初始化数据成员,一个类可以有多个构造器。一个类的构造器的名称必须与该类的名称一致。要退出构造,可以使用返回语句“return;”。相反,方法的作用是为了执行java代码。 构造器和方法在下面三个方面的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰:.. 阅读全文
命令式循环控制与声明式查询表达式(转)
2012-03-11 00:26 by 假面Wilson, 407 阅读, 收藏,
摘要:
转自:http://www.cnblogs.com/yangecnu/archive/2012/03/10/2389603.html For,do… while,while ,foreach是大多数编程语言中常用的循环控制语句,在C#中查询表达式也能实现同样的效果。 查询表达式使得编程风格从”命令式”变得更加的”声明式”。查询表达式定义想要的结果以及要达到该结果需要执行的方法,而不是具体的如何实现。这里重点是查询表达式,通过扩展方法,查询表达式使得能够比命令式循环构造更能够清楚的表达意图。 下面的语句显示了一个命令式风格的填充一个数组并打印到控制台上:int[] foo = new int[. 阅读全文
C#泛型
2012-03-11 00:21 by 假面Wilson, 422 阅读, 收藏,
摘要:
泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设,所以泛型提高了程序的类型安全。它允许程序员将一个实际的数据类型的规约延迟至泛型的实例被创建时才确定。泛型为开发者提供了一种高性能的编程方式,能够提高代码的重用性,并允许开发者编写非常优雅的解决方案。 泛型:通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。泛型类和泛型方法同时具备... 阅读全文
IEnumerable和IEnumerable<T>接口
2012-03-10 23:45 by 假面Wilson, 537 阅读, 收藏,
摘要:
IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerable和IEnumerable<T>接口是.NET Framework中最基本的集合访问器,这两个接口对于LINQ的理解是非常重要的。在面向对象的开发过程中,常常需要创建若干对象,并进行对象的操作和查询,在创建对象前,首先需要声明一个类为对象提供描述,示例代码如下所示。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;//使 阅读全文
C#的自定义事件
2012-03-08 17:22 by 假面Wilson, 335 阅读, 收藏,
摘要:
创建一个事件驱动的程序需要下面的步骤: 1. 声明关于事件的委托; 2. 声明事件; 3. 编写触发事件的函数; 4. 创建事件处理程序; 5. 注册事件处理程序; 6. 在适当的条件下触发事件。现在我们来编写一个自定义事件的程序。主人养了一条忠实的看门狗,晚上主人睡觉的时候,狗负责看守房子。一旦有小偷进来,狗就发出一个Alarm事件,主人接到Alarm事件后就会采取相应的行动。//事件发送者classDog{//1.声明关于事件的委托;publicdelegatevoidAlarmEventHandler(objectsender,EventArgse);//2.声明事件;publiceve 阅读全文
String.Format和StringBuilder的效率
2012-03-08 14:48 by 假面Wilson, 679 阅读, 收藏,
摘要:
到底String.Format还是StringBuilder效率更高一点?至于这个问题,直接叫他用强大的武器Reflector了解一下String.Format的方法.结果他很快就找出相关的代码: publicstaticstringFormat(IFormatProviderprovider,stringformat,paramsobject[]args){if((format==null)||(args==null)){thrownewArgumentNullException((format==null)?"format":"args");}Str 阅读全文
步步为营UML建模系列二、部署图(Deployment Diagram)
2012-03-06 11:51 by 假面Wilson, 296 阅读, 收藏,
摘要:
转载自:http://www.cnblogs.com/springyangwc/archive/2011/12/26/2302238.html概述部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。 一个UML部署图(对象管理组织2001)描述了一个运行时的硬件结点,以及在这些结点上运行的软件组件的静态视图。 部署图显示了系统的硬件,安装在硬件上的软件,以及用于连接异构的机器之间的中间 阅读全文
方法参数关键字:params、ref及out
2012-03-06 10:57 by 假面Wilson, 263 阅读, 收藏,
摘要:
如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。 params params 关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。 usingSystem;classApp{publicstaticvoidUseParams(paramsobject[]list){for(inti=0;i<list.Length;i++){Console.Writ 阅读全文
说说委托,匿名委托,Lamda表达式
2012-02-29 17:40 by 假面Wilson, 522 阅读, 收藏,
摘要:
以下的小demo非常通俗易懂的解释了委托,匿名委托,Lamda表达式usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespaceWebApplication1{publicpartialclass_delegate:System.Web.UI.Page{delegatestringDelegateTest(strings);publicstaticstringgetString(str 阅读全文
c# 集合类 Dictionary、ArrayList、Hashtable和数组的区别
2012-02-22 15:46 by 假面Wilson, 461 阅读, 收藏,
摘要:
C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, 但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 2.数组要声明元素的类型,集合类的元素类型却是object. 3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。 4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标... 阅读全文
C#综合揭秘——细说多线程(下)(转载)
2012-02-09 16:51 by 假面Wilson, 476 阅读, 收藏,
摘要:
本文转载自:http://www.cnblogs.com/leslies2/archive/2012/02/08/2320914.html引言本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。其中委托的BeginInvoke方法以及回调函数最为常用。而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel。其实合理使用I/O线程在通讯项目或文件下载时,能尽量降低IIS的压力。并行编程是 阅读全文
C#综合揭秘——细说事务(转载)
2012-02-08 11:46 by 假面Wilson, 262 阅读, 收藏,
摘要:
转载自:http://www.cnblogs.com/leslies2/archive/2012/01/05/2289106.html引言其实事务在数据层、服务层、业务逻辑层多处地方都会使用到,在本篇文章将会为大家一一细说。其中前面四节是事务的基础,后面的三节是事务的重点,对事务有基础的朋友可以跳过前面四节。文章有错漏的地方欢迎各位点评。目录一、事务的定义二、事务管理器三、在ADO.NET中实现事务四、隐式事务 TransactionScope五、在WCF中实现事务六、嵌套式事务七、异步事务一、事务的定义所谓事务,它是一个操作集合,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。 阅读全文
C#综合揭秘——细说多线程(上)(转载)
2012-02-08 11:43 by 假面Wilson, 375 阅读, 收藏,
摘要:
本文转载自:http://www.cnblogs.com/leslies2/archive/2012/02/07/2310495.html引言本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。其中委托的BeginInvoke方法以及回调函数最为常用。而 I/O线程可能容易遭到大家的忽略,其实在开发多线程系统,更应该多留意I/O线程的操作。特别是在ASP.NET开发当中,可能更多人只会留意在客户端使用Ajax或者在服务器端使用UpdatePanel。其实合理使用I/O线程在通讯项目或文件下载时,能大大减少IIS中的线程池压力。并 阅读全文
ToolStripComboBox的DataSource和DataTable
2011-12-26 11:32 by 假面Wilson, 599 阅读, 收藏,
摘要:
toolStripComboBox.ComboBox.DataSource = datatable; toolStripComboBox.ComboBox.ValueMember = "ItemID"; toolStripComboBox.ComboBox.DisplayMember = "ItemName"; 阅读全文
c#的静态变量和静态函数
2011-11-18 22:05 by 假面Wilson, 573 阅读, 收藏,
摘要:
静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量。static变量在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值。静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等。 class StaticTest{ static int x = 0; int y = 0; public void SetX(int a) { x = a; } public void SetY(int a) { y = a; } publi... 阅读全文
.Net线程问题解答
2011-11-18 20:30 by 假面Wilson, 191 阅读, 收藏,
摘要:
最近在找线程的资料,看到一篇很强大的文章,做个Mark,以便查询~http://www.cnblogs.com/yizhu2000/archive/2008/01/03/1011958.html 阅读全文
浙公网安备 33010602011771号