我是C#的新手.我用C#中的参数尝试了这个
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class First
{
public void fun(out int m)
{
m *= 10;
Console.WriteLine("value of m = " + m);
}
}
class Program
{
static void Main(string[] args)
{
First f = new First();
int x = 30;
f.fun(out x);
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到一些错误,如" 使用未分配的参数'm'",并且
必须在控制离开当前方法之前指定out参数'm'.
那么这些错误的含义是什么呢?为什么在我已经为x赋值时必须分配' m ' .
Cha*_*ana 18
ref表示在调用方法之前传递对已声明和初始化的变量的引用,并且该方法可以修改该变量的值.
out表示在调用方法之前传递对已声明但尚未初始化的变量的引用,并且该方法必须在返回之前初始化或设置其值.
您收到错误,因为作为参数发送到方法的变量out不必在方法调用之前初始化。以下是 100% 正确的代码:
class Program
{
static void Main(string[] args)
{
First f = new First();
int x;
f.fun(out x);
}
}
Run Code Online (Sandbox Code Playgroud)
看起来你正在寻找ref而不是在out这里:
class First
{
public void fun(ref int m)
{
m *= 10;
Console.WriteLine("value of m = " + m);
}
}
class Program
{
static void Main(string[] args)
{
First f = new First();
int x = 30;
f.fun(ref x);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5554 次 |
| 最近记录: |