gpt4 book ai didi

c# - 交换数组中 2 个元素的函数不起作用

转载 作者:行者123 更新时间:2023-11-30 13:15:01 24 4
gpt4 key购买 nike

我是 C# 的新手,我不明白为什么这段代码不起作用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
char[] sw = "ab".ToCharArray();
swap(sw[0], sw[1]);
string end = new string(sw);
Console.Write(end);
}

static void swap(char a, char b)
{
char temp = a;
a = b;
b = temp;
}
}
}

我在控制台上期望的是“ba”,但我得到的是“ab”。我能够找到解决此问题的不同方法,但我想知道这段代码中的错误是什么。感谢您的帮助!

最佳答案

问题在于 swap 方法实际上只是在操作 ab 的本地副本。您需要通过引用传递参数。因此,您可以像这样定义 swap 方法:

    static void swap(ref char a, ref char b)
{
char temp = a;
a = b;
b = temp;
}

然后这样调用它:

    swap(ref sw[0], ref sw[1]);

关于c# - 交换数组中 2 个元素的函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com