http://www.cnblogs.com/yizhu2000/archive/2007/10/12/922637.html
http://www.cnblogs.com/yizhu2000/archive/2007/10/19/929930.html
http://www.cnblogs.com/yizhu2000/archive/2008/01/03/1011958.html
posted @ 2010-12-13 09:30 aming 阅读(25) 评论(0) 编辑
|
http://www.cnblogs.com/yizhu2000/archive/2007/10/12/922637.html http://www.cnblogs.com/yizhu2000/archive/2007/10/19/929930.html http://www.cnblogs.com/yizhu2000/archive/2008/01/03/1011958.html posted @ 2010-12-13 09:30 aming 阅读(25) 评论(0) 编辑 C#中new和override是继承中经常用到的两个关键字,但是往往有时候容易把这两个关键字的作用搞混淆。
new C# new关键字表示隐藏,是指加上new关键字的属性或函数将对本类和继承类隐藏基类的同名属性或函数 public class A
{ public virtual void Method() { Console.WriteLine("This Method in Class A!"); } } public class B : A { public new void Method() { Console.WriteLine("This Method in Class B!"); } } 对于上面这个例子来说,假如运行A a=new B();a.Method();会输出This Method in Class A!,这是因为class B继承于class A,现在B中的Method函数隐藏A中的Method,所以从B(包括继承于B的子类)的角度来看类中的Method就是B.Method,A的Method不可见,但是如果从A的角度来看B,A只认识类B中继承于类A的Method函数,对于B类中的Method它不可见,所以A a=new B();a.Method();相当于是调用了类B中继承于A的Method函数
override C#中override关键字表示重写,对于加上override关键字的属性或函数将完全覆盖基类的同名虚属性或虚函数,使基类的虚属性和虚函数在整个继承链中都不可见(在子类中用base关键字调用除外)。 public class A
{ public virtual void Method() { Console.WriteLine("This Method in Class A!"); } } public class B : A { public override void Method() { Console.WriteLine("This Method in Class B!"); } } 对于上面这个例子来说,假如运行A a=new B();a.Method();会输出This Method in Class B!,因为class B的Method函数完全覆盖基类的同名虚函数Method,使整个继承链中看见的Method函数都是B中的Method,所以就算是以A角度来看B,A看到的Method函数也是B中的Method,因为A中的Method完全被B的覆盖了 但是如果要在B的对象中调用A的Method函数还是有办法,就是使用base关键字,比如 public class A
{ public virtual void Method() { Console.WriteLine("This Method in Class A!"); } } public class B : A { public override void Method() { base.Method(); } } A a=new B();a.Method();会输出This Method in Class A!,base.Method();表示调用类B中继承于基类A的Method
new、override与interface 接口在相互继承的时候也会隐藏基接口的同名属性或函数,但是对于接口来说很特殊,隐藏对于基接口来说是不起作用的,接口内部的属性和函数都只是声明,它们都指向实现接口的类中的同名实现函数,通过接口调用接口的属性和函数的时候都会去调用实现类中从上到下最先可见的同名函数和同名属性: public interface IA
{ void Method(); } public interface IB : IA { new void Method(); } public class IClass:IB { public void Method() { Console.WriteLine("This Method in Class IClass!"); } } public class ISubClass : IClass { public new void Method() { Console.WriteLine("This Method in Class ISubClass!"); } } IA ia = new ISubClass();ia.Method();输出This Method in Class IClass!因为对于ia来说在继承链中最先见到的同名实现函数是类IClass的Method函数
把上面的例子稍作修改: public interface IA
{ void Method(); } public interface IB : IA { new void Method(); } public class IClass:IB { public virtual void Method() { Console.WriteLine("This Method in Class IClass!"); } } public class ISubClass : IClass { public override void Method() { Console.WriteLine("This Method in Class ISubClass!"); } } IA ia = new ISubClass();ia.Method();输出This Method in Class ISubClass!因为继承链中的Method函数都被ISubClass的Method覆盖了,所以对于ia来说在继承链中最先见到的同名实现函数是类ISubClass的Method函数 posted @ 2010-09-25 17:25 aming 阅读(493) 评论(3) 编辑
Asp.Net
Visual Studio
Visual C#.Net
.NET社区 .NET博客 Ajax
工具下载
开源程序
.NET开源项目 SharpDevelop强大的插件系统,通过Addin构建成一个功能齐全的.net开发IDE。核心是 AddInTree。跟随这个项目开发许多有用的组件,比如功能文本编辑器(ICSharpCode.TextEditor),SharpZipLib 等。 链接:http://www.icsharpcode.net/ DotNetNuke 这 个就是著名DNN,使用VB.NET进行开发。通过其基本架构可进行堆积木式快速建站。而且支持子网站系统。其由asp.net Portal start kit进化而来。 链接:http://www.dnnchina.net/ ,http://www.dotnetnuke.com Community Server 这个也是一个很著名的ASP.NET项目,记得好像最早系统原形为asp.net Forums,后来加入了.Text Blog 和nGallery成为一个完整的通用系统。对应的中文版本为宝玉修改的CCS。 链接:http://communityserver.org/ Rainbow 另 外一个类似于DNN的系统,使用C#进行开发。 链接:http://www.rainbowportal.net/ RssBandit 一 个客户端的RSS查看器,使用C# 进行开发,最大的特点是数据存储采用xml文件。 链接:http://www.rssbandit.org/ FreeTextbox Web 上的一个Html超文本编辑器,早些版本是开源的,现在还是免费使用,不过源代码需要购买。 链接:http://www.freetextbox.com World Wind 使用.NET开发的一个Windows窗体系统,以地球外观看得角度提供全球定位功能,类似于Google Earth。 链接:http://worldwind.arc.nasa.gov log4net 对 应Java中的log4j。一个强大的日志管理模块。 链接:http://logging.apache.org/log4net/ Monodevelop 非Windows 系统下的.net 平台开发工具。 链接:http://www.monodevelop.com Paint.NET 使 用.net开发的画图软件,功能不错。 链接:http://www.getpaint.net/index.html Nunit 对 应Java中的Junit,非常著名的单元测试工具。 链接:http://www.nunit.org/ FCKeditor Web 上的又一个Html超文本编辑器。 链接:http://www.fckeditor.net/ Nlog 一 个日志管理库,类似于Log4Net。 链接:http://www.nlog-project.org/ ManagedSpy .net 平台下的Spy ++,支持通过.net 2.0开的Windows Forms应用程序。 链接:http://msdn.microsoft.com/msdnmag/issues/06/04/ManagedSpy/ Guidance Explore 类似于一个.net平台编程问题简答的FAQ。不过提供的都是英文。 链接:http://www.codeplex.com/Wiki/View.aspx?ProjectName=guidanceExplorer Terrarium 一 个.net开发的多人游戏。玩这个游戏可以提高编程能力。 链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49 TaskVision 任 务管理系统,一个经典的Smart Client智能客户端程序。 链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49 IssueVision 事 务管理系统,Smart Client智能客户端程序。 链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49 FotoVision 又 一个值得学习的.net开发的Windows应用程序。 链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49 Infragistics Tracker Application 由Infragistics开发的Smart Client智能客户端程序。 链 接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49 Windows Forms RSS Portal 一个.net 开发的聚合器。 链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49 Enterprise Library 微软的企业库,对原早些时候开发的一些Block 模块进行整合提供企业统一的接口,新版本使用了.net 2.0的的许多功能。 链接:http://msdn.microsoft.com/practices/ PetShop 基 于N-tier设计的电子商务网站,没什么好说的了。 链接:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp XmlNotepad 一 个用.net 开发的xml文件编辑器。 链接:http://www.microsoft.com/china/msdn/library/data/xml/xmlnotepad.mspx DockManager Control 一个很不错的实现类似于VS 2005的界面某些功能的组件。 链接:http://www.codeproject.com/vb/net/DockPanelSkin.asp Starter Kits for Visual Web Developer 该套件为学习研究应用asp.net2.0的开发人员提供许多 宝贵资源,很不错。 链接:http://www.asp.net/downloads/starterkits/default.aspx?tabid=62 posted @ 2010-09-14 18:16 aming 阅读(68) 评论(0) 编辑
[开篇有益]
posted @ 2010-09-13 10:24 aming 阅读(17) 评论(0) 编辑 摘要: 有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的《C#字符串和正则表达式参考手册》学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找《C#字符串和正则表达式参考手册》时,已经不知所踪了。现在用到正则的时候也比较少,把以前的笔记等整理一下,以志不忘。(1)“@”...阅读全文 posted @ 2010-09-10 11:16 aming 阅读(58) 评论(0) 编辑 摘要: Sql 语句块/*声明部分,以declare开头*/declare v_id integer;v_name varchar(20);cursor c_emp is select * from employee where emp_id=3; /*执行部分,以begin开头*/begin open c_emp; --打开游标 loop fetch c_emp into v...阅读全文 posted @ 2010-06-07 18:01 aming 阅读(20) 评论(0) 编辑 摘要: asp.net 使用驻留在页面中的Cache缓存常用可定时更新的数据 这个就先需要先知道一下System.Web.Caching.Cache类,其实在我做WEB应用的时候,我会将一些使用频繁但是又要经常使用并且需要急时更新的对象放到Cache中,这样可以很大程序上减少从硬盘上读取数据的次数。就是希望让Web应用程序从一开始运行到结束都一直存在,有人就说为什么不用Application呢?其实Cac...阅读全文 posted @ 2010-04-29 18:17 aming 阅读(180) 评论(0) 编辑 摘要: (1)介绍javascript中的eval函数的用法(2)如何在函数内执行全局代码►先来说eval的用法,内容比较简单,熟悉的可以跳过。eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值,简...阅读全文 posted @ 2010-04-16 14:47 aming 阅读(71) 评论(0) 编辑 |
||