C#与JAVA的相同:
1、支持跨平台,具有平台无关性。C#和JAVA语言的编译结果是独立于计算机和编程语言的,可执行文件可以在受管理的执行环境中执行;
2、取消指针操作,内存管理采用自动的垃圾回收机制;
3、只支持单重继承,要实现与多重继承类似的功能,必须通过接口来实现;
4、都没有全局变量和全局函数,所有的变量和函数都属于某个类所有;
5、类型安全,所有的值都必须先初始化后才能使用,没有不安全的类型转换;
6、foreach语句遍历数组和集合;
7、类都是从Object类派生而来,类的对象通过关键字new生成;
8、都支持对数组和字符串边界的严格检查,不会出现边界溢出的情况;
9、
C#和JAVA语言中的if语句都不允许采用整数作为判断条件;
C#与JAVA的不同:
1、常量声明,java中好用 final static,C#中用const。
2、switch语句,Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量。
3、C#没有>>>移位操作符。
4、公共类入口,都是公用静态方法,java中小写main,C#中大写Main,并且C#支持重载Main函数。
5、goto关键词 ,Java保留但不用goto关键词。在C#中,goto允许你转到指定的标签。不过,C#以特别谨慎的态度对待goto,比如它不允许
goto转入到语句块的内部。在Java中,你可以用带标签的语句加上break或continue取代C#中的goto。
5、最终类 ,由于C#中不存在final关键词,如果想要某个类不再被派生,你可以使用sealed关键词;
6、接口,都使用关键字interface声明,一个接口可以扩展一个或者多个其他接口,java中用extends关键字,C#中用:符号。java中支持域,C#中的接口不能包含域(Field)。,在C#中,接口内的所有方法默认都是公用方法。在Java中,方法声明可以带有public修饰符(即使这并非必要),但在C#中,显式为接口的方法指
定public修饰符是非法的。
7、index
,C#提供index来给对象加上索引的功能,从而用与处理数组类似的方式来处理对象,JAVA语言则不支持index;
8、
C#中的命名空间,也相当于JAVA中
的包。C#中的命名空间是用using来导入,并且只能到包的级别(如:using System;),而JAVA中包用iport来导入并可以到类的级别(如:import
javax.swing.JFrame)。
C#中命名空间的创建为
namespace 命名空间名称{…},类是写在命名空间的一对大括号内的,而JAVA中的包创建为package 包名;,类是和包分开写的。
9、
C#的原文件扩展
名为.cs,JAVA中的原文件扩展名为.java。
10、
C#中用
csc.exe来编译原文件,而JAVA中用javac.exe来编译原文件。
11、参数传递:java中只有值传递,C#中有四种分别是值传递,引用传递,输出参数,参数数组。
在
C#
中要通过引用方式传递数据,需使用关键字
ref
。使用方法是在定义方法时,在按引用传递的形式参数的类型说明符前加上关键字
ref
,在调用方法时,在按引用传递的实际参数之前加上关键字
ref
。
12、
is和as操作,C#中的is操作符与Java中的instanceof操作符一样,两者都可以用来测试某个对象的实例是否属于特定的类型。在Java中没有与C#中的as操作符等价的操作符。as操作符与is操作符非常相似,但它更富有“进取心”:如果类型正确的话,as操作符会尝试把被测试的对象引用转换成目标类型;否则,它把变量引用设置成null。