我写的是很少的代码,我的问题是我想做一些事情(我不是C#master ^^):
private void pierwiastek(double* c, double* d)
{
}
但它似乎不起作用,因为不安全,我不想使用所有不安全/固定的东西,这种效果是否可以通过其他方式达到(我的意思是变量不会被复制和功能将在源变量上工作)?
答案 0 :(得分:4)
您可能正在寻找ref
或out
个参数:
private void square(double input, out double output)
{
output = input * input;
}
对于ref
或out
参数,对参数进行的修改是对调用者提供的变量进行的。这是传递引用而不是默认的传递值。
像这样调用函数:
double d;
square(3.0, out d);
Debug.Assert(d == 9.0);
使用out
参数,信息从函数流向调用者。 ref
参数允许数据既传递到函数中,也传递到函数中。
答案 1 :(得分:1)
您想要使用ref或out参数。
private void pierwiastek(ref double c, ref double d)
{
//some code
}
或
private void pierwiastek(out double c, out double d)
{
//some code
}
您必须使用ref或out关键字调用该方法:
pierwiastek(ref x, ref y);
或
pierwiastek(out x, out y);
这两个关键字之间的主要区别在于,使用ref传递的变量需要初始化,而out不需要这样。您可能需要阅读相应的msdn文章以获取更多信息: