C#与C、Java的区别
C#与C的区别
- C#通常不使用指针。
- 可以在一个方法里的任何地方声明变量,不必把声明语句放在方法的顶端。
- 使用一个对象前,不一定要声明它,可以在用到的时候再定义。
- C#对结构体类型的定义有些不同,它根本不支持联合类型。
- C#有枚举类型,允许一系列被命名的量(如颜色或一周里的各天)赋值为连续的数值,但语法有些不同。
- C#没有位域,也就是说,变量至少要占用一个字节的存储空间。
- C#不支持长参数列表。必须针对参数值和类型定义一个方法。然而,C#语句允许函数的最后一个参数为可变参数数组。
- C#引入了代理和索引器的思想,这些在其他流行的语言中是没有的。
C#与Java的区别
C#与Java关系密切,由于C#是在Java之后设计出来的,它吸收了Java的大部分精华。但两者还是有一些细微差别。
- 许多系统对象方法都有相同的方法名,只是在大小写形式上有区别。
- C#不提供throws关键字,该关键字使编译器检查你是否捕获了一个方法抛出的异常。
- C#对于布局管理器有更多的限制。因为它是以Windows系统为中心的,大多数时候采取的是图形元素的绝对位置。
- C#允许运算符重载。
- C#引进了代理和索引器。
- C#有枚举类型。
- C#有不安全模式,在这种模式下可以使用指针。
- 必须专门声明一个方法能被覆盖及一个方法能覆盖另一个方法。
- 不能通过声明来区别继承和接口实现,它们的声明方式是一样的。
- switch语句允许使用字符串变量。如果变量没有被匹配,必须有一个默认情况,否则会出现错误。break语句是必需的。
- 布尔变量类型在C#中拼为“bool”,在Java中拼为“boolean”。
摘自《C#设计模式》