本文介绍了未分配的输出参数使用,C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有很简单的问题。
我为你demonstarte我的问题很简单的功能。
I have very simple problem.I made a very simple function for you to demonstarte my problem.
// //主
static void Main(string[] args)
{
double[,] mydouble = new double[1, 4];
mynewMatrix(out mydouble);// call of method
}
public static void mynewMatrix(out double[,] d)
{
for (int i = 0; i < 4; i++)
{
d[0,i]=i;
}
}
//错误
// error
使用未分配的输出参数newMAt的输出参数newMAt'
必须分配到控制离开当前方法之前
我不知道在哪里的问题。
I don't know where is problem.
推荐答案
如果阵列功能之外定义,你应该使用 REF
(或没有,考虑到数组是引用类型)。 退出
表示参数将在函数返回之前被初始化。使用的一些例子:
If the array is defined OUTSIDE of the function, you should use a ref
(or nothing, considering the array is a reference type). out
means the parameter will be initialized in the function before it returns. Some examples of use:
static void Main(string[] args)
{
double[,] mydouble;
mynewMatrix(out mydouble);// call of method
double[,] mydouble2 = new double[1, 4];
mynewMatrix2(mydouble2);// call of method
// useless for what you want to do
mynewMatrix3(ref mydouble2);// call of method
}
public static void mynewMatrix(out double[,] d)
{
d = new double[1, 4];
for (int i = 0; i < 4; i++)
{
d[0, i] = i;
}
}
public static void mynewMatrix2(double[,] d)
{
for (int i = 0; i < 4; i++)
{
d[0, i] = i;
}
}
// useless for what you want to do
public static void mynewMatrix3(ref double[,] d)
{
for (int i = 0; i < 4; i++)
{
d[0, i] = i;
}
}
我要补充一点,如果你不知道是REF 和退出
你可以读出的
这篇关于未分配的输出参数使用,C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!