1.与 Java 不同的是,文件名可以不同于类的名称。
2.文件后缀名为.cs
3.csc xxx.cs 运行该文件
4.标识符可以用@开头
5.C#的基本数据类型要比java多 比如long ushort uint 都是无符号类型
6.c#遵循.net的公共语言规范,生成面向.net环境的代码
7.using指令引入命名空间
8.c#中定义常量使用const,而不是static final
9.C#的设计者还增加了readonly关键词。如果编译器编译时未能确定传递常量值
10.main方法可以不带参数,可以向main方法中传递任何参数,即可以返回任何类型的参数
11.Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量
12.C#的switch语句要求每一个case块或者在块的末尾提供一个break语句,java不写break则会依次向下执行
13.C#没有>>>移位操作符
14.C#中可以使用goto语句,但是只能转到指定语句块的标签
15.C#中只能使用int[] x={0,1,2}来声明数组
16.C#中,命名空间就是包的概念,引入C#程序的关键词是"using"
17.C#没有自动包含的的包,所用的包都需要显式导入
18.C#中没有final关键字,如果设置类不在被继承,使用sealed关键字
19.C#中类的继承和接口的实现使用:
20.C#中is的功能等同于java中的instanceof,判断类型是否一致;as用来把一个引用类型类型转换为另一种引用类型。如果能转换,返回他目标类型。转换不成功,就返回null
21.C#没有自己的类库。C#共享了.NET的类库。
22.C#仍旧保留了C++的内存手工管理方法,它适合在速度极端重要的场合使用,而在Java中这是不允许的。
23.结构(Struct)与类很相似。然而,类是作为一种引用类型在堆中创建,而结构是一种值类型,它存储在栈中或者是嵌入式的。因此,只要谨慎运用,结构要比类快。结构可以实现接口,可以象类一样拥有成员,但结构不支持继承。
然而,简单地用结构来取代类可能导致惨重损失。这是因为,结构是以值的方式传递,由于这种传递方式要把值复制到新的位置,所以传递一个“肥胖的”结构需要较大的开销。而对于类,传递的时候只需传递它的引用。
24.C#中还保留指针
25.C#源代码编译之后是.NET中间语言。java是字节码文件
26.注释:Java比c#少一种"///"的文档注释。
27.访问修饰符:C#中的访问修饰符与Java中的基本对应,但多出了一个internal。internal:成员只能从同一程序集的内部访问。
28.调用父类的构造方法Java用super关键字,而c#用base关键字。
29.java比C#多的特性
匿名内部类:还和Java的好多设计模式有关系。
动态代理: Java里面要实现AOP很容易;C#要实现AOP,相对较难,不得不借助Assamble命名空间下的那些动态IL生成工具或者使用拦截器。这就是动态代理的作用。
30.c#的封装语法非常简单。get { return name; } set { name = value; }
31.用Pascal规则来命名方法和类型,camel规则来命名局部变量和参数名
32.as运算符必须用于引用类型或可以为null的类型
33.typeof用于关于引用类型和值类型的信息
34.C#中string是一个不可变的字符串,如果运算改变,其实是生成了一个新的String对象,对性能不友好;
stringBuilder提供 Append方法,能在已有对象的原地进行字符串的修改,并且运行速度更加快
35.stringBuilder(快)>stringBuffer>string,其中StirngBuffer是线程安全的,StringBuilder非线程安全
36.Java的 for (String b : belle),C#的 foreach(int a in dd)
37.ArrayList类相当于一种高级的动态数组。
读书笔记:C#相比Java的语法上区别
最新推荐文章于 2023-11-18 22:39:39 发布