摘要:
1.仿QQ托盘消息闪动:原理:当有消息来的时候,托盘图标以彩色图标和透明图标来回切换表现闪动效果。2.播放WAV文件System.Media.SoundPlayer player = new System.Media.SoundPlayer(); player.SoundLocation = Application.StartupPath + "\\msg.wav"; player.Play();3. 调用Chrome打开指定网址Process process = new Process();process.StartInfo.Use... 阅读全文
摘要:
调用 IE:System.Diagnostics.Process myProcess = new System.Diagnostics.Process();myProcess.StartInfo.FileName = "iexplore.exe";myProcess.StartInfo.Arguments = "http://www.net0and1.com/";myProcess.Start();调用默认浏览器:string target= "http://www.net0and1.com";//Use no more than o 阅读全文
摘要:
Part 2Chapter 3LINQ to Objects overviewIEnumberalbe<T> Sequences,and the standard QueryIEnumberable<T>, 发音为“I enumerable of T”,IEnumberalbe 是C#中所有泛型集合类必须继承的接口。这个接口允许遍历每个集合的元素。序列的定义就是实现了IEnumerable<T>接口的集合。所有的标准查询语句都是扩展方法,在System。Linq.Enumberalbe命名空间中,静态类,属性中第一个参数是IEnumberable<T& 阅读全文
摘要:
查询表达式1.标准点式语法 和 标准表达式法标准表达式法接近于SQL语法,点式语法则更便于使用。C#语言并没有要求我们必须使用哪种方式,很显然,点式语法是更好的选择。在标准表达式法中,Select放在了语句的最后,这样做的原因是为了是方便VS的智能提示。2.点式语法中常用的查询操作:Where,Select,SelectMany,Join,GroupJoin,GroupBy,OrderBy,ThenBy,OrderByDescending,ThenByDescending.3.查询表达式语法:1.查询表达式必须以from开头2.查询表达式必须包含0个或多个from,let,或者 Where从句 阅读全文
摘要:
分部方法首先,分部方法只能存在于分部类中,这是分部方法跟分部类唯一一点有联系的地方。引入分部方法的原因:分部方法的使用有点像继承关系中的虚方法一样,只是定义了一个方法的声明,并没有该方法的实现。代码在没有实现的情况下可以编译通过,但方法的参数不会被赋值计算,只有当分部方法实现了其定义的时候,参数才能正常赋值使用。引用分部方法的原因在于可以方便代码在开始的时候只有定义,不实现,方法的实现可以等到以后必要的时候实现。分部方法的使用原则:1.分部方法只能定义在分部类中,其实现也只能在分部类中。2.分部方法必须用关键字 partial 修饰。3.分部方法是私有的,但不能对其指定private修饰符,否 阅读全文
摘要:
Lambad表达式树:Lamabda表达式树在编译过程中,有两种方式:如果表达式的第一个参数声明为IEnumberable<T>类型,编译器会编译成IL中间代码,而当扩展方法继承自IQueryable<T>时,编译器会生成一个表达式树。var 关键字,匿名类型,对象初始化var关键字,允许我们在不知道变量类型的情况下初始化变量 如:var a = new {name='张三',sex='男'};但是初始化是必须的var a ;//编译会出错对象初始化:传统的方式是先 new 一个对象 再对对象初始化,例如Address address = 阅读全文
摘要:
概述在.NET Framework 3.5中提供了LINQ 支持后,LINQ就以其强大而优雅的编程方式赢得了开发人员的喜爱,而各种LINQ Provider更是满天飞,如LINQ to NHibernate、LINQ to Google等,大有“一切皆LINQ”的趋势。LINQ本身也提供了很好的扩展性,使得我们可以轻松的编写属于自己的LINQ Provider。本文为打造自己的LINQ Provider系列文章第一篇,主要介绍表达式目录树(Expression Tree)的相关知识。认识表达式目录树究竟什么是表达式目录树(Expression Tree),它是一种抽象语法树或者说它是一种数据结 阅读全文
摘要:
第2章 C# Language Enhancements For LINQC# 语言新特性1.Lambda 表达式2.表达式树3.var 关键字,对象 和 集合初始化 ,匿名类4.拓展方法5.部分方法6.查询表达式一、Lambda表达式Lambda表达式的引入是为了简化匿名方法的使用,而匿名方法又是为了简化委托代码写在别处,复用率又不高的代码段。书中的例子:使用命名方法(Named Methods)在C# 2.0之前,可以使用委托(delegate)来完成这项工作。比如考虑这样一个应用,对数组元素按照一定的规则进行过滤,对于通用模块,可以写成下面的样子:publicclassCommon{p. 阅读全文
摘要:
1.LINQ只能用来查询数据吗?Answer:NO,LINQ还可以用来对数据进行转换。例如把一个intl类型的数组转换成string类型,传统的方法可能需要写一个新的方法,循环遍历该数组中的每一个值,逐一进行转换。而LINQ就可以方便高效地转换。2.Var关键字的使用当变量的类型只有在编译的时候才能确定的情况下,我们可以使用var关键字来代替我们不明确的变量类型。3.Cast 或 OfType 方法的用法LINQ只能应用在实现了IEnumberalbe<T>接口的对象中,对于传统C#集合类型,可以使用Cast(OfType)方法对对象进行转换。example:ArrayList a 阅读全文
摘要:
数组:固定长度的一段内存ArrayList:可以理解为可以动态增加内存list是一种泛型链表,解决了ArrayList对于值类型需要装箱拆箱的特点。-------------------------------------数组就是值对象,它存储数据元素类型的值的一系列位置。ArrayList和List可以提供添加删除,等操作的数据。泛型中的元素类型是固定的。ArrayList可以添加任何类型的元素。 阅读全文