【问题标题】:why doesn't input = charArray.ToString() return a string? [duplicate]为什么 input = charArray.ToString() 不返回字符串? [复制]
【发布时间】:2018-12-08 22:54:49
【问题描述】:

我正在编写一个将字符串作为输入并将其反转的程序。在这样做时,我遇到了一种我不理解的行为。

为什么这不返回一个字符串?相反,它返回 System.Char[]。

using System;

public static class ReverseString
{
    public static string Reverse(string input)
    {
        if (input.Length == 0)
        {
            return input;
        }
        char[] charArray = input.ToCharArray();
        Array.Reverse(charArray);
        input = charArray.ToString();

        return input;
    }
}

工作代码:

using System;

public static class ReverseString
{
    public static string Reverse(string input)
    {
        if (input.Length == 0)
        {
            return input;
        }
        char[] charArray = input.ToCharArray();
        Array.Reverse(charArray);

        return new string(charArray);
    }
}

【问题讨论】:

  • ToString 为没有覆盖ToString 的任何内容返回类型名称(*例如'System.Char[]')。如果你想要一个字符串,创建一个字符串
  • 确实返回一个字符串,它只是不返回具有您想要的值的字符串。它返回“System.Char[]”作为字符串
  • 我想我在关注。我在 ToString 的文档中看到“Object.ToString 方法的默认实现返回对象类型的完全限定名称”。这很有意义。
  • 是的,作为最后的手段,请阅读文档。

标签: c#


【解决方案1】:

任何没有 ToString() 实现的方法都将对象名称作为字符串返回。在这种情况下 Char[] (character Array) 没有 ToString() 实现,因此不知道如何将字符数组转换为字符串。在这种情况下,您需要创建新字符串。

var reversedString = new string(charArray);

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 2013-04-09
    • 2018-06-29
    • 1970-01-01
    • 2023-02-17
    • 2019-05-04
    • 2017-05-18
    • 2021-08-23
    相关资源
    最近更新 更多