【发布时间】:2019-01-30 20:22:44
【问题描述】:
我有一个简单的方法,如下所示,
private int Increment(out n) {
int n = 46;
return n++;
}
根据我的理解,使用out必须先初始化变量,但我仍然得到了
的错误return n++
必须在控制离开当前方法之前分配out参数'n'
我的变量也有错误
int n = 46;
不能在此范围内声明名为“n”的本地或参数,因为该名称在封闭的本地范围中用于定义本地或参数
我的问题是,为什么我不能在我的方法内声明一个新变量,看来我必须在方法外声明我的变量,然后在方法内赋值。
如果我刚出来,就意味着我必须将变量 int 传递给我的方法,我不能在方法内部创建吗?我在方法中声明的参数指针是什么?
【问题讨论】:
-
private int Increment(out n)应该是private int Increment(out int n)对吧?那么你不必写int n = 46,而是n = 46。 -
是的,对不起,我错过了,它是私有的 int Increment(out int n)。
-
我想我错过了你的功能的目的。是否仅用于教育目的和理解
out?因为这不会增加任何东西。它只是将一个变量设置为 47 并返回 46(不管你调用它多少次)。 -
@Rafalon 我只是想知道为什么我不能在方法内部声明 int n,关于变量,我认为根据我的代码输出它会返回 47。作为引用类型,输出 n 将为 47。
-
@ckky1213 任何 SO 用户都应该能够编辑他们自己的问题,如果你不能,那么这是一个错误。
标签: c# oop scope reference out