w1100n
This site is best viewed in Google Chrome
6/11/2015 15:38 | Tag:

C# Clone() 方法 分类: C#2012-12-17 16:05 4869人阅读 评论(0) 收藏 举报 c#C# Clone 分浅拷贝和深拷贝 两者的区别:当有引用类型成员时,浅拷贝复制的是成员的引用,深拷贝复制的是成员对象。 如何实现对象的拷贝功能: == 继承接口ICloneable实现Clone方法 == ICloneable.Clone本身并不能区分(Deep or Shallow)你可以在Clone中调用MemberwiseClone来实现一个ShallowClone也可以自己来实现一个DeepClone。不过按照microsoft的建议当实现ICloneable的时候是准备用来实现一个DeepClone。 == ICloneable.Clone返回类型是object == 其中MemberwiseClone的复制原理是值类型按位复制,引用类型复制对象的引用。这里有一个要注意的就是String类型,虽然是引用类型,不过在这里表现上和值类型是一样的,在Clone的时候就当作值类型来看待好了。 我的习惯是自己从ICloneable派生一个接口 object DeepClone(); object ShallowClone(); } public class Person : ICloneable { public string Name; … Continue reading

11/15/2012 13:17 | Tag:

看页面觉得很奇怪,怎么在源代码里看不到链接,效果上却有链接,于是猜想是不是有类似jsp里面的include之类的方法,比如说当初我用的用户自定义控件usercontrol之类的,结果没发现,却发现多了个<asp:content>然后没有了<head><body>之类的。上网查了下,结果这是MasterPage技术,百度知道的介绍如下:           MasterPage其实是一种模板,它可以让你快速的建立相同页面布局而内部不同的网页,如果一个网站有多个MasterPage,那么新建aspx文件的时候就可以选择需要实现页面布局的MasterPage。另外,在你没有使用MasterPage之前,如果N个相同的页面布局需要改动成另外一个样式,那么你就要做很多无聊而又不得不做的工作,对N个页面进行一一更改,如果使用了MasterPage,你只要改动一个页面也就是MasterPage文件就可以了。还有,你是否发现你要要部署的web程序越来越大,使用MasterPage在一定程度上会减小web程序的大小,因为所有的重复的html标记都只有一个版本。 首先,我们需要打开VS2005,创建一个WebSite(这里要注意,是创建一个WebSite而不是创建一个Project) 然后,给刚建立的WebSite添加一个名字叫MasterPage.master的MasterPage,这个时候我们会看到该文件有如下内容: <%@ Master Language=”C#” CodeFile=”MasterPage.master.cs” Inherits=”MasterPage” %> <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=”http://www.w3.org/1999/xhtml” > <head runat=”server”> <title>Untitled Page</title> </head> <body> <form id=”form1″ runat=”server”> <div> <asp:contentplaceholder id=”ContentPlaceHolder1″ runat=”server”> </asp:contentplaceholder> </div> </form> </body> </html> 看起来和一个普通的aspx页面差不多,但是最上面的声明<%@ … Continue reading

11/15/2012 11:41 | Tag:

ASP.NET Session的使用当中我们会遇到很多的问题,那么这里我们来谈下经常出现的一些常用ASP.NET Session的理解: ASP.NET Session的七点认识之一   对于值类型的变量,Session中保存的是值类型的拷贝 Session[“__test0“] =1; int i = (int)Session[“__test0“]+1; int j = (int)Session[“__test0“]; 结果i=2,j=1 ASP.NET Session的七点认识之二   对于引用类新的变量,Session中保存的是引用 CDACommon cda =new CDACommon(); Session[“__test“] = cda.GetDataSet(“select top 1 * from tb_customer“); DataSet ds = (DataSet)Session[“__test“]; DataSet ds2 = (DataSet)Session[“__test“]; ds.Tables[0].Rows[0][0]=“9999“; 结果ds.Tables[0].Rows[0][0]==”9999″ ds2.Tables[0].Rows[0][0]==”9999″; ASP.NET Session的七点认识之三   Session周期 新的浏览器窗口启动后,开始一个新的Session,触发Global的Session_Start的调用,从第一个浏览器窗口打开的浏览器窗口不启动新的Session。Session过期后,执行页面的提交也会触发Session_Start,等于是新的一个Session。 ASP.NET Session的七点认识之四   调用Session 对于Web Service,每个方法的调用都会启动一个Session,可以用下面的方法来使多个调用在同一个Session里 CWSSyscfg cwsCfg = new CWSSyscfg(); cwsCfg.CookieContainer = new System.Net.CookieContainer(); … Continue reading

11/15/2012 9:51 | Tag:

http://www.jb51.net/article/20928.htm 如果你读过很多行业杂志和 ASP.NET 示例,你会发现,大多数人使用 Response.Redirect 将用户引导到另一个页面,而另一些人好像偏爱于神秘的 Server.Transfer,那么,这二者有什么区别? Response.Redirect 简单地发送一条消息到浏览器,告诉浏览器定位到另一个页面。你可以使用下面的代码将用户引导到另一个页面: Response.Redirect(“WebForm2.aspx”) 或者 Response.Redirect(“http://www.cnnas.com/”) Server.Transfer 也是通过一条语句将用户引导到另一页面,比如:Server.Transfer(“WebForm2.aspx”)。不过,这条语句有一系列独特的优缺点。 首先,通过 Server.Transfer 引导到另一页面保留服务器资源,通过更改服务器端“焦点”和传输请求来代替告诉浏览器重定向,这就意味着你不会占用较多的 HTTP 请求,因此这可以减轻服务器的压力,使你的服务器运行更快。 不过,请注意,由于 “transfer” 只能在同一服务器端的同一站点间运行,所以你不能用 Server.Transfer 将用户重定向到另一服务器上的站点。要重定向到服务器以外的站点,只有 Response.Redirect 能办到。 其次,Server.Transfer 保留浏览器端的 URL 地址。这对流线型的数据输入很有帮助,不过这也增加了调试的复杂度。 还有:Server.Transfer 方法还有另一个参数——”preserveForm”。如果你设置这个参数为 True,比如:Server.Transfer(“WebForm2.aspx”, True), 那么 query string 和任何 form 变量都会同时传递到你定位的页面。 … Continue reading

11/14/2012 10:38 | Tag:

Web.config文件 Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 (一).Web.Config是以xml文件规范存储,配置文件分为以下格式 1.配置节处理程序声明 特点:位于配置文件的顶部,包含在<configSections>标志中。 2.特定应用程序配置 特点: 位于<appSetting>中。可以定义应用程序的全局常量设置等信息. 3.配置节设置 特点: 位于<system.Web>节中,控制asp.net运行时的行为. 4.配置节组 特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部. (二).配置节的每一节 1.<configuration>节根元素,其它节都是在它的内部. 2.<appSetting>节此节用于定义应用程序设置项。对一些不确定设置,还可以让用户根据自己实际情况自己设置

11/14/2012 10:26 | Tag:

ASP 是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面) ,运行于 IIS 之中的程序 。ASP.NET的前身ASP技术,是在IIS 2.0上首次推出(Windows NT 3.51),当时与 ADO 1.0 一起推出,在IIS 3.0 (Windows NT 4.0)发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了Visual InterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展Windows NT 4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。不过ASP的缺点也逐渐的浮现出来: 意大利面型的程序开发方法,让维护的难度提高很多,尤其是大型的ASP应用程序。 直译式的VBScript或JScript语言,让效能有些许的受限。 延展性因为其基础架构扩充性不足而受限,虽然有COM元件可用,但开发一些特殊功能(像文件上传)时,没有来自内置的支持,需要寻求第三方软件商开发的元件。 1997年时,微软开始针对ASP的缺点(尤其是意大利面型的程序开发方法)准备开始一个新项目来开发,当时ASP.NET的主要领导人Scott Guthrie刚从杜克大学毕业,他和IIS团队的Mark Anders经理一起合作两个月,开发出了下一代ASP技术的原型,这个原型在1997年的圣诞节时被发展出来,并给予一个名称:XSP,这个原型产品使用的是Java语言。不过它马上就被纳入当时还在开发中的CLR平台,Scott Guthrie事后也认为将这个技术移植到当时的CLR平台,确实有很大的风险(huge risk),但当时的XSP团队却是以CLR开发应用的第一个团队。 为了将XSP移植到CLR中,XSP团队将XSP的内核程序全部以C#语言重新撰写(在内部的项目代号是 “Project Cool”,但是当时对公开场合是保密的),并且改名为ASP+,作为ASP技术的后继者,并且也会提供一个简单的移转方法给ASP开发人员。ASP+首次的Beta版本以及应用在PDC 2000中亮相,由Bill Gates主讲Keynote(即关键技术的概览),由富士通公司展示使用COBOL语言撰写ASP+应用程序,并且宣布它可以使用Visual Basic.NET、C#、Perl与Python语言(后两者由ActiveState公司开发的互通工具支持)来开发。 在2000年第二季时,微软正式推动.NET策略,ASP+也顺理成章的改名为ASP.NET,经过四年的开发,第一个版本的ASP.NET在2002年1月5日亮相(和.NET Framework 1.0),Scott Guthrie也成为ASP.NET的产品经理(到现在已经开发了数个微软产品,像ASP.NET … Continue reading

辽ICP备14012896