错误使用未分配的输出参数' q'并且' g,请纠正我做错的地方。提前致谢。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
int p = 23;
int f = 24;
Fun(out p, out f);
Console.WriteLine("{0} {1}", p, f);
}
static void Fun(out int q, out int g)
{
q = q+1;
g = g+1;
}
}
答案 0 :(得分:8)
你所做错的正是编译器所说的你做错了 - 你试图从out
参数读取它是明确分配的。看看你的代码:
static void Fun(out int q, out int g)
{
q = q + 1;
g = g + 1;
}
在每种情况下,赋值表达式的右侧都使用out参数,而out参数尚未赋值。 out
参数最初没有明确赋值,必须在方法返回之前明确赋值(除了通过例外)
如果想要增加两个参数,则应使用ref
代替。
static void Fun(ref int q, ref int g)
{
q = q + 1;
g = g + 1;
}
或更简单:
static void Fun(ref int q, ref int g)
{
q++;
g++;
}
您需要将调用代码更改为:
Fun(ref p, ref f);