cs_array_ref.cs

来自「java基础方面的一些实例代码」· CS 代码 · 共 91 行

CS
91
字号
// cs_array_ref.cs
using System; 
class TestRef 
{
	public static void FillArray(ref int[] arr) 
	{
		arr[0] = 123;
		arr[4] = 1024;
	}
	//对于引用类型,例如数组,不用ref也可以传出方法中改变的参数值,前提是在方法中不能用new初始化形参
	public static void FillArray_notRef(int[] arr) 
	{
		arr[0] = 1111;
		arr[4] = 2222;
	}

	public static void FillArray1(ref int[] arr) 
	{
		arr = new int [] {11,22,33,44,55};  //将会改变实参的值
		arr[0] = 123;
		arr[4] = 1024;
	}
	//对于引用类型,例如数组,
	public static void FillArray_notRef1(int[] arr) 
	{
		arr = new int [] {111,222,333,444,555}; //将不会改变实参的值,与实参无关
		arr[0] = 1111;
		arr[4] = 2222;
	}

	//对于引用类型,例如string,
	public static void string_notRef(string str) 
	{
		str="abcde";   //与实参无关,不能改变实参
	}

	//对于引用类型,例如string,
	public static void string_Ref(ref string str) 
	{
		str="abcde";  //改变实参
	}

	static public void Main () 
	{
		// Initialize the array:
		int[] myArray = {1,2,3,4,5};  //调用方法前必须初始化 

		Console.WriteLine("ref ====================");
		// Pass the array using ref:
		FillArray(ref myArray);
		// Display the updated array:
		Console.WriteLine("Array elements are:");
		for (int i = 0; i < myArray.Length; i++) 
			Console.WriteLine(myArray[i]);

		Console.WriteLine("Not ref ====================");
		// Pass the array Not using ref:
		FillArray_notRef(myArray);
		// Display the updated array:
		Console.WriteLine("Array elements are:");
		for (int i = 0; i < myArray.Length; i++) 
			Console.WriteLine(myArray[i]);

		Console.WriteLine("ref new ====================");
		// Pass the array  using ref:
		FillArray1(ref myArray);
		// Display the updated array:
		Console.WriteLine("Array elements are:");
		for (int i = 0; i < myArray.Length; i++) 
			Console.WriteLine(myArray[i]);

		Console.WriteLine("Not ref new ====================");
		// Pass the array Not using ref:
		FillArray_notRef1(myArray);
		// Display the updated array:
		Console.WriteLine("Array elements are:");
		for (int i = 0; i < myArray.Length; i++) 
			Console.WriteLine(myArray[i]);

		Console.WriteLine("Not ref string ====================");
		string mystr="1234";
		string_notRef(mystr);
		Console.WriteLine(mystr);
		string_Ref(ref mystr);
		Console.WriteLine(mystr);


		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?