我如何将我的代码放入方法中,因为它现在有一个错误并且我不知道如何解决它。在我们的考试中,我们必须将所有练习都放到一个方法中,但是现在它说“当我尝试返回类型时,不能将类型'int'隐式转换为'string'(下划线'n')。
public string FloydsTriangle(int n)
{
Console.Write("Enter a number: ");
int num = Convert.ToInt32(Console.ReadLine());
int count = 1;
for (int i = num; i > 0; i--)
{
for (int j = num; j >= i; j--)
{
Console.Write(count + " ");
count++;
}
Console.WriteLine();
}
Console.ReadLine();
return n;
}
答案 0 :(得分:1)
当前,您的代码没有多大意义,因为您有一个方法接受int
,但不执行任何操作,然后返回string
,这是相同的int
用户传入仅转换为字符串(假设您将.ToString()
添加到返回值中,如其他答案中所述)。
实现此目的的一种方法是使用int
参数作为三角形的基础,然后返回三角形的字符串表示形式(而不是在此方法内部的控制台中读取或写入任何内容) )。
注意,我没有纠正您现有的任何代码-我只更改了该方法如何使用输入参数以及如何输出结果:
public static string GetFloydsTriangle(int n)
{
int count = 1;
// Instead of writing strings to the console, we'll
// store them in this string and return it at the end
string triangle = string.Empty;
for (int i = n; i > 0; i--)
{
for (int j = n; j >= i; j--)
{
triangle = triangle + count + " ";
count++;
}
triangle = triangle + Environment.NewLine;
}
return triangle;
}
然后,要使用该方法,我们将在Main
方法中要求用户输入数字,然后将其传递给我们的方法。另外,我们将从三角形方法(这是我们的三角形字符串)中获取返回值,并使用Main
方法将该字符串写入控制台。
这是编写帮助程序方法的一种非常标准的方法-它仅基于输入数据进行一些计算并返回结果(它不与用户或UI交互)。
同样,我不会更正您的代码,只是将其重构为使用新方法:
static void Main(string[] args)
{
Console.Write("Enter a number: ");
int num = Convert.ToInt32(Console.ReadLine());
string triangle = GetFloydsTriangle(num);
Console.WriteLine(triangle);
Console.Write("\nDone! Press any key to exit...");
Console.ReadKey();
}
答案 1 :(得分:0)
您的方法指定您将传回string
。您将想要做类似的事情:
return n.toString();
否则,您需要将方法更改为:
public int FloydsTriangle(int n)