一切福田,不離方寸,從心而覓,感無不通。

C#与C、Java的区别

C#与C的区别

  1. C#通常不使用指针。
  2. 可以在一个方法里的任何地方声明变量,不必把声明语句放在方法的顶端。
  3. 使用一个对象前,不一定要声明它,可以在用到的时候再定义。
  4. C#对结构体类型的定义有些不同,它根本不支持联合类型。
  5. C#有枚举类型,允许一系列被命名的量(如颜色或一周里的各天)赋值为连续的数值,但语法有些不同。
  6. C#没有位域,也就是说,变量至少要占用一个字节的存储空间。
  7. C#不支持长参数列表。必须针对参数值和类型定义一个方法。然而,C#语句允许函数的最后一个参数为可变参数数组。
  8. C#引入了代理和索引器的思想,这些在其他流行的语言中是没有的。

 

C#与Java的区别

C#与Java关系密切,由于C#是在Java之后设计出来的,它吸收了Java的大部分精华。但两者还是有一些细微差别。

  1. 许多系统对象方法都有相同的方法名,只是在大小写形式上有区别。
  2. C#不提供throws关键字,该关键字使编译器检查你是否捕获了一个方法抛出的异常。
  3. C#对于布局管理器有更多的限制。因为它是以Windows系统为中心的,大多数时候采取的是图形元素的绝对位置。
  4. C#允许运算符重载。
  5. C#引进了代理和索引器。
  6. C#有枚举类型。
  7. C#有不安全模式,在这种模式下可以使用指针。
  8. 必须专门声明一个方法能被覆盖及一个方法能覆盖另一个方法。
  9. 不能通过声明来区别继承和接口实现,它们的声明方式是一样的。
  10. switch语句允许使用字符串变量。如果变量没有被匹配,必须有一个默认情况,否则会出现错误。break语句是必需的。
  11. 布尔变量类型在C#中拼为“bool”,在Java中拼为“boolean”。

摘自《C#设计模式》