随笔分类 -  C#

打好根基
摘要:This document will describe using transactions in EF6 including the enhancements we have added since EF5 to make working with transactions easy. In al 阅读全文
posted @ 2016-03-14 15:53 xiepeixing 阅读(2692) 评论(0) 推荐(0) 编辑
摘要:.NET下的异步编程及其发展任何平台和编程语言都会有多线程的实现机制和方法。对于C#来讲Thread类就是创建线程,管理线程的一种最初始的手段。但是创建和销毁一个线程是很耗费资源的,而且创建的线程越多,线程间切换就越频繁(计算机CPU个数受限),线程切换也要耗费资源和时间,再加上线程管理是一件很费心的事,所以微软就引入了线程池的概念。线程池是一个先进先出FIFO的队列,程序员只需要把操作或者任务丢给线程池,让.NET framework替程序员管理线程,线程复用等,极大的简化了开发。这里就有一个控制线程池内线程数量的问题。线程池内的线程肯定得根据需要动态变化,但适应这种需要的算法是什么呢? 一 阅读全文
posted @ 2013-07-12 11:34 xiepeixing 阅读(660) 评论(0) 推荐(0) 编辑
摘要:匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。共有两种匿名函数,以下主题中分别讨论了这些函数:Lambda 表达式(C# 编程指南).匿名方法(C# 编程指南)在 C# 1.0 中,您通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。C# 2.0 引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。C# 3.0 引入了 Lambda 表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。这两个功能统称为“匿名函数”。通常,针对 .NET 阅读全文
posted @ 2013-03-15 11:01 xiepeixing 阅读(502) 评论(0) 推荐(0) 编辑
摘要:若要有效编写查询,您应该了解完整的查询操作中的变量类型是如何全部彼此关联的。如果您了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例。另外,还能了解在使用var隐式对变量进行类型化时的后台操作。LINQ 查询操作在数据源、查询本身及查询执行中是强类型的。查询中变量的类型必须与数据源中... 阅读全文
posted @ 2013-02-26 16:49 xiepeixing 阅读(335) 评论(0) 推荐(0) 编辑
摘要:由于已熟悉查询语言(如 SQL 或 XQuery),基本的查询操作不再叙述。因为类似。此外语言集成查询 (LINQ) 不仅可用于检索数据,而且还是一个功能强大的数据转换工具。通过使用 LINQ 查询,您可以将源序列用作输入,并采用多种方式修改它以创建新输出序列。您可以通过排序和分组来修改序列本身,而... 阅读全文
posted @ 2013-02-26 16:43 xiepeixing 阅读(888) 评论(0) 推荐(0) 编辑
摘要:查询是一种从数据源检索数据的表达式。查询通常用专门的查询语言来表示。随着时间的推移,人们已经为各种数据源开发了不同的语言;例如,用于关系数据库的 SQL 和用于 XML 的 XQuery。因此,开发人员不得不针对他们必须支持的每种数据源或数据格式而学习新的查询语言。LINQ 通过提供一种跨各种数据源... 阅读全文
posted @ 2013-02-26 16:14 xiepeixing 阅读(301) 评论(0) 推荐(0) 编辑
摘要:泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。泛型通常用在集合和在集合上运行的方法中。.NET Framework 2.0 版类库提供一个新的命名空间System.Collections.Generic,其中包含几个新的基于泛型的集合类。建议面向 2.0 版的所有应用程序都使用新的泛型集合类,而不要使用旧的非泛型集合类,如ArrayList。有关更多信息,请参见.NET Framework 类库中的泛型(C# 编程指南)。当然,也可以创建自定义泛型类型和方法,以提供自己的通用解决方案,设计类型安全的高效模式。下面的代码示例演示一个用于演示用途的简单泛型链 阅读全文
posted @ 2013-01-10 15:41 xiepeixing 阅读(238) 评论(0) 推荐(0) 编辑
摘要:定义带索引器和访问器的接口public interface ISampleInterface{ // Property declaration: string Name { get; set; }}由于接口本身特点,接口属性的访问器不具有体。因此,访问器的用途是指示属性是否为读写、只读或只写。在此例中,接口IEmployee具有读写属性Name和只读属性Counter。Employee类实现IEmployee接口并使用这两种属性。程序读取新雇员的姓名和雇员的当前编号,并显示雇员姓名和计算所得的雇员编号。可以使用属性的完全限定名,它引用声明成员... 阅读全文
posted @ 2013-01-10 14:47 xiepeixing 阅读(2688) 评论(0) 推荐(0) 编辑
摘要:文章出处:http://www.cnblogs.com/ArmyShen/archive/2012/08/27/2659405.html索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。索引器和数组比较:(1)索引器的索引值(Index)类型不受限制(2)索引器允许重载(3)索引器不是一个变量索引器和属性的不同点(1)属性以名称来标识,索引器以函数形式标识(2)索引器可以被重载,属性不可以(3)索引器不能声明为static,属性可以一个简单的索引器例子using System;using System.Collections;publi 阅读全文
posted @ 2013-01-05 10:22 xiepeixing 阅读(358) 评论(0) 推荐(0) 编辑
摘要:经典的关于委托的详解 http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html这里从网上找到的的实例,适合新手test下:委托(delegate)是一种引用类型,我们在处理他的时候要当作类来看待而不是方法,说白了委托就是对方法或者方法列表的引用,调用一个委托实例就好像是调用c++中的指针一样,他封装了对制定方法的引用,或者说委托起到的是桥梁的作用,实例后的委托对象会将给定的参数传递给他所回调的方法,并去执行方法。//声明一个委托 delegate int myDelegateHandler(int a, int b)... 阅读全文
posted @ 2012-08-13 09:35 xiepeixing 阅读(229) 评论(0) 推荐(0) 编辑
摘要:(一)ArrayList类:使用大小可按需动态增加的数组。class Program { static void Main(string[] args) { ArrayList al = new ArrayList(); al.Add(100);//单个添加 foreach (int number in new int[6] { 9, 3, 7, 2, 4, 8 }) { al.Add(number);//集体添加方法一 ... 阅读全文
posted @ 2012-07-24 11:09 xiepeixing 阅读(206) 评论(0) 推荐(0) 编辑