C#与java语法区别(2)
11. 运算符重载
Java中无。运算符重载必须为类的静态方法,重载==,其他判断操作也必许重载。
12. C#增加了索引器,可以象访问数组一样访问类或结构。
13. 与Java不同,C#中的接口不能包含域(Field)。
另外还要注意,在C#中,接口内的所有方法默认都是公用方法。在Java中,方法声明可以带有public修饰符(即使这并非必要),但在C#中,显式为接口的方法指定public修饰符是非法的。
14. 异常方面
与Java非常相似,只是没有throws关键字,无须截获异常(当然要在程序主入口去截)。
15. 方法方面
与Java相同,只有基本类型通过值传递,其他都是传递引用。不过C#也可以以引用的方式传递基本类型,利用ref关键字。而out关键字有些类似于Oracle存储过程,与ref的区别在于:方法忽略out参数初始值,方法必须为out参数赋值。
16. 在C#中也可以直接使用指针,开辟或者回收内存,只是要使用两个关键字unsafe和fixed。
17. 委托
委托(delegate)可以看作C++或者其他语言中的函数指针
委托用来封装可调用方法。你可以在类里面编写方法并在该方法上创建委托,此后这个委托就可以被传递到第二个方法。这样,第二个方法就可以调用第一个方法。
委托是从公共基类System.Delegate派生的引用类型。定义和使用委托包括三个步骤:声明,创建实例,调用。委托用delegate声明语法声明。
浙公网安备 33010602011771号