随笔分类 - C#
摘要:很多时候需要将DataTable转换成一组model,直接对model执行操作会更加方便直观。代码如下: 1 public static class DataTableToModel 2 { 3 public static List ConvertToModel(this ...
阅读全文
摘要:首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中我只有一个打印程序的实例。简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。 下面来看单例模式的结构图(图太简单了)从上面的类图中可以看出,在单例类中有一个构造函数 Singleton ,但是这个构造函数却是私有的(前面是“ - ”符号),然后在里面还公开了一个 GetInstan.
阅读全文
摘要:.Net3.5之后出现了HashSet<T>,硬翻译过来就是“哈希集合”,跟“哈希”两字挂钩说明这种集合的内部实现用到了哈希算法,用Reflector工具就可以发现,HashSet<T>和Dictionary<TKey,TValue>使用了相同的存储方式和哈希冲突算法,那么,它跟Dictionary<TKey,TValue>和Hashtable在使用上到底有什么不同?HashSet<T>对集合运算的操作HashSet<T>是一个Set集合,虽然List、Collection也叫集合,但Set集合和它们却大有不同。HashS
阅读全文
摘要:转自:http://www.cnblogs.com/zhaoyang/archive/2011/11/16/2251200.html下面我们使用三张图片解析ASP.net的整个生命周期,我总感觉使用图片更加的清楚的说明这种问题,所以使用的这样方式说明:1 第一张图片从全局说明从客户端发出一个Request请求,服务器windows内核中的HTTP.SYS组件接收该请求开始到IIS处理完该请求并响应到客户端结束。2 第二张图片为图1中Http处理管线的详细步骤3 第三张图片为图2Http处理管线中调用处理程序(HttpHandler, 此处为Page对象)的详细生命周期过程。图1:图2: Htt
阅读全文
摘要:下表描述了 ASP.NET 应用程序生命周期的各个阶段。阶段说明用户从 Web 服务器请求应用程序资源。ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点。ASP.NET 是 Web 服务器下的 ISAPI 扩展。Web 服务器接收到请求时,会对所请求的文件的文件扩展名进行检查,确定应由哪个 ISAPI 扩展处理该请求,然后将该请求传递给合适的 ISAPI 扩展。ASP.NET 处理已映射到其上的文件扩展名,如 .aspx、.ascx、.ashx 和 .asmx。注意如果文件扩展名尚未映射到 ASP.NET,则 ASP.
阅读全文
摘要:如果我们的枚举类型结构如下,我们需要获取enum的name,value以及description public enum EnumTest { [Description("Attribute")] Attribute1 = 1, [Description("Attribute")] Attribute2 = 2, [Description("Measure")] Measure1 = 3, [Description("Measure")] Measure2 = 4 ...
阅读全文
摘要:public static class StringHelper { /// <summary> /// convert string to list by separators /// </summary> /// <param name="str">the string you want to deal with</param> /// <param name="separators">the separator char array </param> /// <retur
阅读全文
摘要:转自:http://blog.csdn.net/it_xiaohong/article/details/7249277dynamic a = 10;a = a + 10;Console.WriteLine(a.GetType());此段代码会输出 System.Int32,第二行不需要类型转换,因为在运行时识别类型。dynamic 在后台使用 System.Object 类型。但与 object 不同的是,动态类型不需要在编译时执行显式转换操作,因为它仅在运行时识别类型。关于dynamic和object的详细区别,看看《What is the difference between “dynam
阅读全文
摘要:1、首先找一个提供天气预报webservice的URL,这里我们选择。http://www.webxml.com.cn/WebServices/WeatherWebService.asmx该URL提供了多个获取天气的方法。打开网站后我们可以看到有个getWeatherbyCityName方法,根据城市获取天气。2、输入我们想要获取的城市名:然后点击调用,页面返回给我们的是XML内容,内容如下:<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http
阅读全文
摘要:转自:http://ruizhinet.blog.163.com/blog/static/9921382820092801032681/之前写过一篇关于C#委托与事件的文章(见《C#委托和事件例析》),不过还是收到一些网友的提问。所以,今天再换另一个角度来详解一下这个问题。一、在控制台下使用委托和事件我们都知道,C#中有“接口”这个概念,所谓的“接口”就是定义一套标准,然后由实现类来具体实现其中的方法,所以说“接口,是一组类的抽象”。同样道理,我们可以将“委托”理解为“方法的抽象”,也就是说定义一个方法的模板,至于这个方法具体是怎么样的,就由方法自己去实现。我们知道接口的最大好处就是可以实现多
阅读全文
摘要:每个委托都只包含一个方法调用,调用委托的次数与调用方法的次数相同。如果调用多个方法,就需要多次显示调用这个委托。当然委托也可以包含多个方法,这种委托称为多播委托。当调用多播委托时,它连续调用每个方法。在调用过程中,委托必须为同类型,返回类型一般为void,这样才能将委托的单个实例合并为一个多播委托。如果委托具有返回值和/或输出参数,它将返回最后调用的方法的返回值和参数。(有些书上和博客说多播委托返回类型必须为void,并且不能带输出参数,只能带引用参数,是错误的)。如下:/// <summary>/// 多播委托/// </summary>public class Mu
阅读全文
摘要:1、Get方法是用来向服务器上获取数据,而Post是用来向服务器上传递修改数据。2、Get将表单里的数据添加到action所指向的URL后面,并且两者之间使用”?”连接,而各个变量之间使用”&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值对象的方式,传递到所指向的action.3、Get是不安全的,因为在传输过程中,数据被放在请求的Url中,这样,用户可以直接在浏览器上看到提交的数据,一些系统内部信息也一同显示在用户面前。Post的所有操作对用户来说都是不可见的。4、Get传输的数据量小,主要是受限与于Url长度限制,其中IE浏览器对URL的最大限度为2083个字
阅读全文
摘要:见下列代码: static void Main(string[] args) { int[,] a = new int[,] { { 0, 1, 2, 3 }, { 2, 3, 4, 5 }, { 3, 4, 5, 6 } }; Console.WriteLine("规则数组:"); Console.WriteLine(a.Length); Console.WriteLine(a.GetLength(0)); Console.WriteLine(a.GetL...
阅读全文

浙公网安备 33010602011771号