我正在通过书本自学 C#,希望能得到一些帮助。我想创建一个简单的控制台程序,以允许用户输入要加倍的数字。它说 Main 方法中的变量 result
未分配,但是,我做错了什么?
using System;
class Program
{
private static void Double(ref int num, ref int result)
{
result = num * 2;
}
private static int readNumber(string question)
{
Console.Write(question);
string ans = Console.ReadLine();
int number = int.Parse(ans);
return number;
}
public static void Main()
{
int num, result;
num = readNumber("Enter an integer to be doubled: ");
Double(ref num, ref result);
Console.WriteLine("The double of {0} is {1}", num, result);
Console.WriteLine("Press enter to exit...");
Console.ReadLine();
}
}
最佳答案
编译器对你大喊大叫,因为它想强制你在将变量传递给方法调用之前对其进行初始化。
含义:
int num, result;
应该是:
int num = 0;
int result = 0;
可能有更好的方法来做你想做的事情,根本不需要任何 ref
参数,只需使用方法的返回值:
private static int Double(int num)
{
return num * 2;
}
然后像这样消费它:
public static void Main()
{
int num = readNumber("Enter an integer to be doubled: ");
int result = Double(num);
Console.WriteLine("The double of {0} is {1}", num, result);
Console.WriteLine("Press enter to exit...");
Console.ReadLine();
}
这甚至可以 (IMO) 增强代码的可读性并更好地传达您的意图。
关于c# - 使用引用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34174449/