摘要: 刚刚查了下MSDN,发现结构是由System.Object基类派生的。结构不是为继承设计的。不能从一个结构中继承,唯一的例外是结构有Object派生,因此结构可以访问Object中的方法。在结构中,甚至可以改写Object中方法----例如重写ToString()方法。结构的继承链是:System.Object--->System.ValueType--->Struct.每个结构都派生与ValueType.在我的理解来看,结构的出现,是为了提升性能,有时候仅需要一个小小的数据结构,而不需一个类,这时候就可以选择用结构来代替。就比如一个类class {public double le 阅读全文
posted @ 2011-04-17 20:43 GY小小鸟 阅读(436) 评论(2) 推荐(0) 编辑
摘要: 索引器这个东东,我也是最近才接触,一般所说的索引器,是指定义在某个类里面的一个类似属性的东西。索引器是.net中新的类成员。类似与类的属性。有些人干脆称呼它为带参数的属性。索引器可以快速定位到类中某一个数组成员的单元。下面看看代码:Indexerclass indexerClass { private int[] arr=new int[100]; private string[] names=new string[100]; public int this[int index] { get { if (index < 0 || index >= 100) { return -1; 阅读全文
posted @ 2011-04-17 16:01 GY小小鸟 阅读(416) 评论(0) 推荐(1) 编辑
摘要: 虽然在博客园里面已经有很多关于C#委托和事件的文章,但是为了自己在学习的过程中,加深对委托的理解,我还是决定写一下自己的心得体会。以备他日在回来复习。委托(delegate)是一个类,但是这个类在声明的时候跟普通的类有些不同。不带class 关键字等。如下:View Code static void Main(string[] args) { Test(); Console.ReadKey(); } static void SayHello(string name) { Console.WriteLine("Nice to me you "+name); } static 阅读全文
posted @ 2011-04-17 15:50 GY小小鸟 阅读(490) 评论(3) 推荐(0) 编辑
摘要: 页面缓存: 给页面添加<%@ OutputCache Duration="60" VaryByParam="none"%> 标签就可以启用页面缓存,这样整个页面的内容都会被缓存,页面中的ASP.Net代码、数据源在缓存期间都不会被运行,而是直接输出缓存的页面内容。Duration表示缓存时间,以秒为单位,超过这个时间则缓存失效,再次生成之后会再缓存60秒,以此类推。在Page_load出设置断点,修改数据库数据后,可以测试其效果。 缓存是针对所有这个页面的访问者。这样1个访问者和1万个访问者,一次访问和一万次访问对数据库的压力都是一样的。 V 阅读全文
posted @ 2011-04-17 00:05 GY小小鸟 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 首先说一下什么是ViewState。 简单的说它就是ASP.NET中用来保存页面中信息以及控件值(上次返回的信息)的一种机制。客户端需要和服务器端进行交互的时候,服务器端在返回处理后的值给客户端之后,是没有保存处理后的值得。所以,有些必要的值都会保存到ViewState中。 需要在回发过程中保留的页面的当前状态的值将被序列化为Base64编码的字符串,并输出到ViewState的隐藏字段中。通过自定义的PageStatePersiste类以存储页数据。 默认情况下ASP.NET是启用ViewState的,这样在页面中会生成一大坨隐藏字段。但是,只有需要交互的页面中,也就是需要postback处 阅读全文
posted @ 2011-04-17 00:03 GY小小鸟 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 1.Repeater控件的使用创建数据源,并为Repeater控件设置数据源,然后就可以在<ItemTemplate>中设置要显示的值。数据源中有多少条数据,都会遍历出来,相当于foreach,如果需要隔行的文字显示不同的样式。就要设置<AlternatingItemTemplate>,在此属性的内容就是偶数行的内容啦,如果需要隔行显示不同样式,则偶数行的数据设置不同的样式即可。可以将偶数行的代码通过div包装一下在放到<AlternatingItem Template>中,就可以通过设置div的样式使得偶数行的数据样式不同啦。简而言之,<Altern 阅读全文
posted @ 2011-04-17 00:02 GY小小鸟 阅读(1958) 评论(2) 推荐(0) 编辑
摘要: 1.FormView控件的使用这三个控件的数据源都是用对象数据源进行操作的。所有也要先了解ObjectDataSource控件的用法哦。ObjectDataSourceObjectDataSource用来将一个类作为数据源,TypeName属性为数据源类的全名,有DeleteMethod、InsertMethod、SelectMethod、UpdateMethod等几个属性,分别为类中删除、插入、查询、更新数据的方法名,这些方法可能有参数,参数的值是通过DeleteParameters、UpdataParameters、InsertParameters等嵌套节点设置的。手工编写ObjectDa 阅读全文
posted @ 2011-04-17 00:02 GY小小鸟 阅读(3813) 评论(1) 推荐(0) 编辑
摘要: 1.ListView控件的使用Repeater一般只用来展示数据,如果要对数据进行增删改查则用ListView更方便。使用想到来使ListView自动生成很多模版,免去手写模版的麻烦,我们可以对生成的模版再进行手工的调整以满足具体需求。首先设定数据源,然后点击智能提示中的“配置ListView”,选择一种布局方式,然后根据需要选择“启用编辑”、“启用插入”、“启用分页”、就会自动的生成常用的模版。注意:这样只是提高开发的效率,而不是唯一的途径。LayoutTemplate为布局模版,布局模版中必须有一个id为itemPlaceholder的服务端控件,什么类型的控件都可以,不会被显示,只是作为 阅读全文
posted @ 2011-04-17 00:01 GY小小鸟 阅读(1912) 评论(0) 推荐(0) 编辑
摘要: 注册练习:验证码的生成:publicvoidProcessRequest(HttpContextcontext){stringstr="";Randomr=newRandom();for(inti = 0; i <= 4; i++){intj=r.Next(10);str = str + j;}context.Session["YanZheng"] = str;context.Response.ContentType ="image/JPEG";using(System.Drawing.Bitmapbitmap =newSyst 阅读全文
posted @ 2011-04-17 00:00 GY小小鸟 阅读(415) 评论(0) 推荐(0) 编辑