1

我想将几个变量传递给一个函数并将它们设置为其他东西,而不是从它们中读取。我计划在可以创建对象并将其添加到执行队列的场景中使用它。指针适合这个吗?

我知道我的问题的解释很糟糕,但我不知道更好的方法来解释它。

4

2 回答 2

7

听起来您可能需要一个reforout参数。例如:

public static void SetVariables(out int x, ref int y)
{
    // Can't *read* from x at all before it's set
    x = 10;
    // Can read and write y
    y++;
}

public static void Foo()
{
    int setOnly;
    int increment = 5;
    SetVariables(out setOnly, ref increment);
    Console.WriteLine("{0} {1}", setOnly, increment); // 10 6
}

有关详细信息,请参阅我的参数传递文章

于 2012-07-30T14:13:31.947 回答
2

这些变量是引用类型还是值类型?如果它们是引用类型,那么您可以照常将它们传递给您的函数,然后从那里改变它的属性。如果它们是值类型,那么您必须使用ref键盘。

于 2012-07-30T14:14:19.677 回答