在向大家详细介绍通过C#引用传递之前,首先让大家了解下C# Main() 方法,然后全面介绍通过C#引用传递。
C# Main() 方法
每个 C# 应用程序都必须http://msdn.microsoft.com/vstudio/java/gettingstarted/csharpforjava/#Arrays in C#只能包含一个 Main() 方法,Main() 方法指定程序从何处开始执行。注意,在 C# 中,Main() 用大写字母开头,而 Java 使用小写的 main()。
Main() 只能返回 int 或 void,并且有一个可选的字符串数组参数来表示命令行参数:
- static int Main (string[] args)
- {
- ...
- return 0;
- }
当将参数传递给方法时,它们可能通过值传递,也可能通过引用传递。值参数只提取任何变量的值以在方法中使用,因而调用代码中的变量值不受方法中对这些参数所执行的操作的影响。
而引用型参数指向在调用代码中声明的变量,因而在通过引用传递时,方法将修改该变量的内容。
通过C#引用传递
在 Java 和 C# 中,引用对象的方法参数总是通过C#引用传递,而基本数据类型参数则通过值传递。
在 C# 中,所有参数在默认情况下都是通过值传递的。要通过引用进行传递,我们需要指定关键字 ref 或 out 中的一个。这两个关键字的不同之处在于参数的初始化。ref 参数必须在使用前进行初始化,而 out 参数无需在传递前进行显式初始化,并且任何先前的值都会被忽略。
请注意,当方法将引用类型作为参数使用时,引用本身是通过值传递的。然而,引用仍然指向内存中的同一对象,因此对对象的属性所做的任何改变在方法退出之后将保持不变。但是,因为引用本身是通过值传递的,所以在方法内它应该改为指向一个不同的对象甚至一个新对象,而一旦方法执行完毕,引用就会恢复为指向原来的对象,即使原来的对象是未赋值的也同样如此。
【编辑推荐】