.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
C#学习日记 - 2004/11/03

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

1. C#的方法(method)缺省是不能被继承类改写的;如果希望被继承类改写,则需要显式加上关键字virtual,并且在继承类改写该方法的时候还要加上override关键字。而java默认所有可被继承类访问到的方法(非private方法)是可以被改写的,除非该方法被标记为final方法。
个人喜好:还是觉得java的处理方式比较简洁。而且在.NET架构下调用一个virtual方法,比起调用一个普通方法,性能上的差别应该很小了(没有在c++里面的那种性能差别),既然如此,为什么要引入virtual, override, new这么多的关键字,把问题是不是搞复杂了???

2. 初次接触.NET里面的custom attribute,并没有觉得它是多大的创新。但是随着对.NET了解的深入,发觉custom attribute确实是很了不起的。有了它,就没必要像java那样引入一些不包含任何方法的mark interface,直接通过attribute标记更漂亮。再比如NUnit,开始也是使用Reflection来寻找测试方法,后来通过attribute来标记,确实更好一些。J2SE 5.0准备引入metadata,应该是Java向.NET学习的结果。

3. C#引入的delegate和event,个人感觉对提高编程方便性还是有帮助。像java那样通过interface和observer模式来处理事件的方式,虽然也很通用,但是毕竟要多写一些代码来处理register/unregister observable对象的重复代码,而delegate将这些地方封装起来了。但是delegate毕竟只能声明一个"回调函数",如果类里面有很多事件(比如Button),类的对外接口就显得很庞大了。




相关文章

相关软件