首页 > 解决方案 > 错误 CS0029 无法在第 5 行将类型“void”隐式转换为“int”

问题描述

我正在尝试制作一个石头剪刀布游戏,我需要程序从石头纸或剪刀中随机选择。我决定创建一个随机数选择器,如下所示,其中 1=rock,2=paper,3=scissors。

 1      class Program
    {
 2       static void Main(string[] args)
        {
 3           var r = new Random();

 4           var myList = new List<int> { 1, 2, 3 };
 5           int count = myList.Count;

 6           int indexVal = r.Next(count);

 7           int x = Console.WriteLine(myList[indexVal]);

 8           Console.ReadLine();


        }

      
    }

但问题是当我运行它说的代码时

错误 CS0029 无法将类型“void”隐式转换为“int”

在第 5 行。我计划取 int x 的值并编写决定获胜者的 switch 语句。

我是编码和 C# 的绝对初学者,所以请帮忙。

标签: c#

解决方案


错误在第 7 行(您的编号)。您不能将结果分配Console.WriteLine给 an,int因为写入控制台不会产生任何回报。做了:

 7           Console.WriteLine(myList[indexVal]);

每当您阅读文档或查看智能感知时,您会看到方法返回void意味着“此方法不返回任何值” - 您无法捕获它并将其分配给变量。换句话说,返回 void 的方法可能不会出现在 an 的右侧=,或者出现在它们需要生成然后将被使用的值的某些地方(例如,您不能说return Console.WriteLine(...),因为没有生成要返回的值

在此处输入图像描述


推荐阅读