2012-07-30 94 views
1

我想要一個函數傳遞幾個變量,並將它們設置爲別的東西而不是從它們讀取。我打算在可以創建對象並將其添加到執行隊列的場景中使用它。指針是否適合這個?通過變量設置在C#

我知道我的問題有一個很差的解釋,但我不知道更好的解釋方法。

+3

我認爲你正在尋找關鍵字'ref'。鏈接:http://msdn.microsoft.com/en-us/library/14akc2c7(v=vs.71).aspx – SimpleVar 2012-07-30 14:12:32

+0

你是新來的C#?我的建議是不要在C#中使用指針。 – Bernard 2012-07-30 14:13:12

+0

是的,我很新C# – HansiHE 2012-07-30 14:15:17

回答

7

聽起來你可能想要一個refout參數。例如:

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 
} 

請參閱我的parameter passing article瞭解更多信息。

+0

聽起來就像我需要的,謝謝你的快速答案。 – HansiHE 2012-07-30 14:14:54

2

這些變量是引用類型還是值類型?如果它們是引用類型,那麼你可以按照正常的方式將它們傳遞給你的函數,然後從那裏改變它的屬性。如果它們是值類型,那麼您必須使用ref鍵盤。

+1

只需注意,如果它們是引用類型並且* assignment *是必需的,那麼'ref'也是必需的。 – 2012-07-30 14:14:45