C#和Java语言级别的几点不同

[ 2007-04-06 15:20:05 | 作者: progame ]
文字大小: | |
这几天开始把SqlBroker移植到java平台,没有找到好的c# -> java auto convert 工具,有一个net2java的netbeans的plugin,为此还去下载安装了NetBeans,结果还是不尽人意,只好自己手工来了,结果由于C#和Java语言上的一些差异,调试了好久。

1、先说String吧,除掉一个String而另一个是string外,C#中重载了==操作,所以可以对两个字符串做比较而不用Equals,但Java中不行了,==指的就是这两个字符串指针是否指向同一块内存区域,结果这个不一致让我排查了好久。另外就是Format的问题,C#中为{index},而Java为%index,更让人伤心的是Java的index从1算起,天哪,众多语言的index都是从0起步的啊,Java的数组也一样

2、枚举类型的不同,在Java中枚举还可以带方法,所以它不是一个值类型了,因此可以为null,但C#中就不一样了,值类型,默认为第一个枚举值,不能为null

3、如果返回多个参数结果,C#中针对值类型可以使用ref关键字传引用,很方便,Java中就不行了,如果是同一类型,就用数组吧,如果不是,也只能用List之类的,像这些JDK里的集合类我现在基本上全都不会用,只会一个hashtable

4、Hashtable,C#中Contains指的是ContainsKey的意思,而Java中应该是ContainsValue的意思,仍未完全明白,反正把C#中移过来的代码全部改成containsKey了

5、ResultSet,天哪,饶了我吧,这也实在太难用了,即使后来用RowSet补了一下,但仍然让使用过Ado.net的我感觉回到了原始社会,像Hibernate这样的高精尖武器又对我的这种不太适合,因为我的东西要脱离实体类的,痛苦啊是一种无法言说只能体会的悲哀.....

6、Exception的throw声明,又是一个折磨人的事情,我还真看不出好处在哪里,即使有Eclipse的Quick fix,对仍然让我非常上火,因为不能选中多个Problems进行一次fix,累啊...
评论Feed 评论Feed: /feed.asp?q=comment&id=663

标签: Java C# 移植 比较

这篇日志没有评论.

发表
表情图标
[smile] [confused] [cool] [cry]
[eek] [angry] [wink] [sweat]
[lol] [stun] [razz] [redface]
[rolleyes] [sad] [yes] [no]
[heart] [star] [music] [idea]
UBB代码
转换链接
表情图标
悄悄话
用户名:   密码:   (非注册用户不需要输入密码) 注册?
验证码(不区分大小写) * 请输入验证码