C#和Java存在很多相似之处,但是也存在一些差异。今天下午刚去图书馆借了C#的入门书籍,进过简单的入门,我了解了几点不同之处:
1. Java中的基本数据类型只有8种,数据类型不存在无符号和有符号的区分,而C#中的基本数据类型多余Java,因为C#中数值存在有符号和无符号的类型。
2. C#中有结构的类型,这应该是借鉴了C/C++中的结构体的概念。而Java中没有这种数据类型。
3. 数组的使用方面,C#的多维数组声明方式比较特别,是在数组名后的中括号里增加逗号,并在初始化时指定每一维的长度。而Java或者C++等声明多维数组时都是在数组名后跟多个中括号。
4. 在控制结构中,C#中比C++增加了foreach语句结果,与Java中的for循环迭代有些相似,但是我感觉Java中for迭代功能更加强大。C#中goto end 句型我还是第一次见到,觉得这很特别。
方法的参数类型
值传递和引用传递:方法调用时,程序会首先将实参的值传递给对应的形参,对于引用类型的参数,实参和形参会指向同一个对象;而对于值类型的参数,实参的值将被赋值一份给形参。C#中提供了方法参数的引用传递方式,引用传递的方法参数通过“ref”关键字修饰:
public static void function(ref int x,ref int y){}
调用时也需要才实参之前添加ref关键字
输出型参数:
输出型参数使用out 关键字加以修饰。输出型参数也采用引用传递方式,但是形参在方法中必须被赋值。
public decimal gain(decimal x, int n, out decimal interest){}
数组型参数:
方法的参数类型可以是数组,在参数前面加上params,该参数就成为了数组型参数,类比Java中的可变参数。