c# - c#out参数,为什么我给我的变量赋值了,还是不能返回?
问题描述
我有一个简单的方法,如下所示,
private int Increment(out n) {
int n = 46;
return n++;
}
据我了解,使用 out 必须先初始化变量,但我仍然得到错误
return n++
必须在控制离开当前方法之前分配 out 参数“n”
我的变量也有错误
int n = 46;
不能在此范围内声明名为“n”的本地或参数,因为该名称在封闭的本地范围中用于定义本地或参数
我的问题是,为什么我不能在我的方法内声明一个新变量,看来我必须在方法外声明我的变量,然后在方法内赋值。
如果我刚出来,这意味着我必须将变量 int 传递给我的方法,我不能在方法内部创建吗?我在方法中声明的参数指针是什么?
解决方案
声明“out
声明”变量,您只需在方法中设置它:
private int Increment(out int n)
{
n = 46;
return n++;
}
请注意,此方法返回 46,但n
实际上是 47。
推荐阅读
- javascript - 在 Mobx 状态树中进行更改后,如何让模型/状态进行监听?
- html - 更改 MailChimp 的成功/错误消息颜色
- css - svg 中跨度的 Xpath
- visual-studio-code - 为什么Vscode Cmd+R 开始调试不起作用
- android - 订阅 Firebase 服务的应用程序在启动时崩溃
- php - 如何将重复数据删除到数组中
- c++ - 为什么 while (cout << A[--N] << ' ' && N) 和 while (cout << A[--N] << ' ') 给了我两个不同的答案,这里的 N 有什么作用?
- javascript - Edge 无法解析 AMS v3 生成的 VTT 文件
- python - 块大小问题(Dask、xarray、zarr)
- selenium-webdriver - 如何使用 selenium webdriver 验证页面中文本和 Web 元素的对齐方式?