随笔分类 - C#基础学习
C#2.0;C#3.0;C#4.0
摘要:本文中,我们将介绍设计模式中的行为型模式职责链模式,职责链模式的结果看上去很简单,但是也很复杂。首先我们来了解下现实生活中的链子,如下图:了解职责链之前我们先来了解下职责链模式的模式动机:模式动机 职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。 链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传递,由链上的处理者对请求进行相应的处理,客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链上即可,将请求的发送者和请求的处理者解耦。这就是职责链模式的模式动机。模式定义 职责链模式(Chain...
阅读全文
摘要:在本文中,我们将了解不同的事件,ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点,直至将请求结果返回至浏览器结束。在这个过程中,首先我们需要了解ASP.NET请求的2个大致的步骤。其次我们将详细了解 'httphandler ',' httpmodule和 asp.net 页面对象(Page)中不同的事件的执行顺序,逻辑。二个步骤的过程:asp.net请求处理,2步的过程如下所示,用户发送一个请求到IIS 服务器:1、asp.net创建一个运行时,可以处理请求。换句话说,它创建应用程序对象,请求
阅读全文
摘要:在日常项目开发中,我们会经常用到自定义控件,我们通过一个简单的例子来说明,在日常项目中我们经常会用到图片,或者图片控件,我们以ImageButton为例来说明。<asp:ImageButton ID="imgbtn" runat="server" ImageUrl="~/Images/Add.png" />很多时候我们需要在很多页面上放上面这段代码,每次都要重复设置ImageUrl 当图片路径换了。或者图片名称换了,我们需要替换很多地方。有没有更简单的方法呢,使用自定义控件。在项目中我们经常使用一些添加 删除,修改的按钮图
阅读全文
摘要:继上篇简单工厂设计模式之后,今天继续讲解抽象工厂设计模式。在简单工厂中,我们的工厂类一次只可以处理一类产品。那么如果我们想处理多类产品,简单工厂是满足不了的。必须要用抽象工厂设计模式。我们先从概念上来了解下什么是抽象工厂设计模式:•1、提供一系列相互依赖对象的创建工作•2、封装对象常规的创建方法(new)•3、提供统一调用访问方法的方式•4、避免调用访问方法和具体对象创建工作的紧耦合这些概念性的东西看起来比较抽象,直接上图如上图所示,我们如何去更好的理解抽象工厂,首先 我们要分清在这个模式中的几类角色。有抽象工厂,实体工厂,抽象产品,实体产品,客户(调用代码的类)。•抽象工厂设计模式中各个对象
阅读全文
摘要:在讲C#参数传递之前,我们先简单讨论下 c#中值类型和引用类型的定义以及区别,有助于我们更好的理解参数传递。我们从内存的角度来简单讨论下值类型和引用类型的区别。我们都知道值类型存储在栈上,引用类型分别在栈和托管堆上。如下图:我们通过例子来看下 值类型和引用类型存储结构不同有哪些区别:定义一个类 (引用类型)View Code 1 public class Student2 {3 public int Age { get; set; }4 5 public void Say()6 {7 Console.WriteLi...
阅读全文
摘要:在日常项目中,我们经常用到文件的上传下载功能,今天分享一个在ASP.NET中下载文件的例子,通过实现IHttpHandler 来实现下载。直接上代码:DownloadHandler.csView Code public class DownloadHandler:IHttpHandler { public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext context) { ...
阅读全文
摘要:IP定位 已经不是什么新的技术,但是在做项目中却会常常用到。找网上找了许久,也做了许多的实验,觉得QQwry.dat,很很好用的,作者也提供了开发的源码和大家分享。 在这里感谢作者。我在项目中也用到了ip定位,写了代码,希望能给没有用过的朋友有所帮助。QQ 纯真IP 数据库 下载地址QQWry.dat直接上代码 : IPScanner.csView Code public class IPScanner { private byte[] data; Regex regex = new Regex(@"(((\d{1,2})|(1\d{2})|(2...
阅读全文
摘要:今天分享设计模式中最简单的一种模式 简单工厂模式。先从面向对象说起,面向对象有三大特性:继承,封装,多态。所谓封装:在面向对象语言中,我们都是以类来组织代码,类中定义了属性和方法,我们在调用的时候只需要去使用对象的方法名或者属性名就可以了,而不必甚至不需要知道方法的具体实现,类比生活中的例子,榨汁机。我们只知道用它可以榨果汁,放个苹果给我们一杯苹果汁,放个桔子给我们一杯桔子汁就可以了。我们不必要去关心 榨汁机是怎么去工作的。所谓继承:就是子类继承了父类,父类所有的非私有的方法和属性,子类都可以拿来直接使用。就好比生活中,父亲给儿子留了一笔遗产。你可以直接使用这笔钱而不需要去创造这笔钱然后在去使
阅读全文
摘要:在日常工作中,经常要分离和附加数据库,sqlserver自带的分离和附加工具,每次使用都非常不方便,非常慢,写了个数据库分离附加工具,以下是部分核心代码:public class OperDBforSqlServer{//使用集成连接数据库private static string ConnectionString="workstation id=\""+Dns.GetHostName()+"\";integrated security=SSPI;data source=\"" +".\";persist
阅读全文
摘要:1、纯粹给懒人用的关键字var 在C#3.0中新增加了一个关键字var,可以用来声明变量。 varage=26; varusername="zhuye"; varuserlist=new[]{"a","b","c"}; foreach(varuserinuserlist) Console.WriteLine(user); var关键字,告诉编译器(对于CLR来说,它是不会知道你是否使用了var,苦力是编译器出的),你自己推断它的类型吧,我不管了。但是既然让编译器推断类型就必须声明的时候赋值,而且不能是null值。注
阅读全文
摘要:学习内容:配置.net运行环境,c#中命名空间,c#.net 2005编码规范学习总结:1. 配置.net运行环境第一歩:安装.net framework第二歩:找到.net framework的安装目录下的csc.exe文件,这个文件为.net framework的编译器第三步:将csc.exe的安装目录放到系统环境变量中第四歩:在运行里打cmd命令,掉出dos窗口,在命令提示符下键入csc,系统显示.netframe work的相关信息第五歩:.net运行环境配置完成第六歩:编写**.cs文件,放在只定的目录下第7歩:在dos窗口下键入**.cs文件所在的目录,然后键入csc **.cs,
阅读全文
摘要:序言:本文内容是在课后为学生总结的知识点,希望能对大家在学习C#时有所帮助。 1.DotNET(.net) 是2000年 比尔.盖茨提出来的一个思想2.DotNET FrameWork(框架) 是微软为了实现.net思想而造的一个框架3.DotNet框架包括两个部分: (1)公共语言运行时(CLR) (2)类库集(FCL)4.在类库集(FCL)中,包括了所有编写.NET程序时所要应用到的函数(方法)5.公共语言运行时,是来运行编译好的.NET程序的6..NET程序必须是两次编译才可以运行7.第一次编译后的.NET程序,我们叫做中间语言(MSIL+元数据)8.第二次编译后,才能成为机器代码,让计
阅读全文