这是我在网站上的第一个问题,我相信我会在这里找到答案。在学校,我试图为我们面临的挑战做一些基本的 C# 编码。这是问题所在:通常,当我通过一个方法传递一个值时,我不会遇到问题。像这样:static void Main(string[] args){ // Declare Integer int originalInt = 20; // Call the Method int multipliedInt = Multiplication(originalInt); // Prompt Console.WriteLine("Original: {0} Modified: {1}", originalInt, multipliedInt);}// Methodstatic public int Multiplication(int original) { // Quik Maffs int modifiedValue = original * 2; return modifiedValue;}上面的例子工作得很好。原始值为 20,修改值为 40。但是,当我尝试使用数组执行此操作时,情况会发生变化:static void Main(string[] args){ // Declare Original Array int[] originalArray = new int[] {1, 4, 6, 8, 12}; // Call Method int[] multipliedArray = Multiplication(originalArray); // Prompt Console.WriteLine("Original: [{0}], Multiplied: [{1}]", String.Join(", ", originalArray), String.Join(", ", multipliedArray));}// Methodstatic public int[] Multiplication(int[] original) { // New Int int[] modified = original; // Loop for (int i = 0; i < modified.Length; i++) { modified[i] *= 2; } return modified;}上面的代码两次返回修改后的值。似乎它也修改了原始值。知道为什么会这样吗?
1 回答
- 1 回答
- 0 关注
- 215 浏览
添加回答
举报
0/150
提交
取消