首页 > 解决方案 > c#out参数,为什么我给我的变量赋值了,还是不能返回?

问题描述

我有一个简单的方法,如下所示,

        private int Increment(out n) {
            int n = 46;
            return n++;
        }

据我了解,使用 out 必须先初始化变量,但我仍然得到错误

return n++ 

必须在控制离开当前方法之前分配 out 参数“n”

我的变量也有错误

int n = 46;

不能在此范围内声明名为“n”的本地或参数,因为该名称在封闭的本地范围中用于定义本地或参数

我的问题是,为什么我不能在我的方法内声明一个新变量,看来我必须在方法外声明我的变量,然后在方法内赋值。

如果我刚出来,这意味着我必须将变量 int 传递给我的方法,我不能在方法内部创建吗?我在方法中声明的参数指针是什么?

标签: c#oopscopereferenceout

解决方案


声明“out声明”变量,您只需在方法中设置它:

private int Increment(out int n)
{
    n = 46;
    return n++;
}

请注意,此方法返回 46,但n实际上是 47。


推荐阅读