c# - Console.WriteLine ("text"+ 函数(参数));不起作用,但该指令分为两个 Console.Write 工作正常

标签 c#

我几天前开始在算法类(class)中使用 C#。 我有作业,有些事情需要解释。 我需要创建一个具有三个级别的刽子手游戏,每个级别有四个单词可供猜测。

我要在屏幕上打印的是:

Level 1 : oooo
Level 2 : oooo
Level 3 : oooo

每当在关卡中找到一个单词时,“空心圆圈”就会被填满。

为了渲染它,我决定创建一个 char[ ]

这是我正在使用的函数:

public static char[] DisplayEmptyCircles(List<string> listLevel)
{
    char[] emptyCircle = new char[listLevel.Count];
    for (int counterCircles = 0; counterCircles < listLevel.Count; counterCircles++)
    {
        emptyCircle[counterCircles] = Convert.ToChar(9675);             
    }
    return emptyCircle;
}

当我使用这两个单独的指令时,一切顺利:

Console.Write("Level 1 : ");
Console.Write(DisplayEmptyCircles(firstLevel));

但我第一次使用这个并打印了一个 System.Char[ ] 而不是空圆圈:

Console.WriteLine("Level 1 : " + DisplayEmptyCircles(firstLevel));

谁能告诉我为什么?

很抱歉,我知道这个问题已经被问过了,但我对 C# 几乎一无所知。这只是开始学习和理解。

最佳答案

您的 DisplayEmptyCircles 返回一个 char 数组,因此它不能连接成一个字符串。您可以在调用 Console.Write 时让您的函数返回一个字符串或将其结果转换为字符串。

如果只是想创建一个包含N个圆圈的字符串,那么可以通过更简单的方式实现:

public static string DisplayEmptyCircles(int count)
{
    return new string((char)9675, count);
}

Console.WriteLine("Level 1 : " + DisplayEmptyCircles(firstLevel.Count));

代码中的一些其他更改:

  • 它不使用 char[] 而是利用 String(char c, int count) constuctor
  • DisplayEmptyCircles 实际上不需要有关级别的信息,它只需要计数
  • 你不需要使用Convert.ToChar,因为它只是做一些额外的检查,当你有一个常量值时这些检查是多余的

关于c# - Console.WriteLine ("text"+ 函数(参数));不起作用,但该指令分为两个 Console.Write 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54023621/

相关文章:

c# - LINQ,排除某些项目

c# - 带有 checkBoxEdit 列的 DevExpress XtraGrid 控件

c# - 数据库中的选项而不是 O 或 null

c# - AutoFixture 和 XUnit2 - 结合 TheoryData 和 AutoData

c# - 我如何查看 C# 中的远程进程?

c# - 如何处理 JSON 以从字段名称中删除句点?

c# - MVC 中的 MEF 和嵌入式 View

c# - C# Mono 中 HttpListener 中的连接丢失

c# - vb.net 重载解析失败,出现 "multiple members with this name exist in class"

c# - 用于查看对象详细信息的 winforms 控件