2014-04-03 27 views
0

在這個例子中,我有3個由類中的方法使用的值。如何在C#中將方法值返回給它的原點

主要方法:

String testString; 
List<String> testList = new List<String>(){ 
    "Value1", 
    "Value2", 
    "Value3", 
} 
int goGet = 2; 

TestClass.DrawString(testString, testList, goGet); 

類:

class TestClass 
{ 
    public static void DrawString (String myString, List<String> myList, int get){ 
     myString = myList.ElementAt(get); 
     get = get + 1;   
    } 
} 

我想知道如果我能即MyString的返回值到原來的地方(與TestString,myList中以testList,並獲得去上課),如果是這樣的話。

+0

你爲什麼要和「myString」傳遞,而不必拉帶的返回類型爲字符串? –

回答

3

你想看看使用ref (C# Reference)關鍵字

ref關鍵字導致參數按引用傳遞,而不是 值。通過引用傳遞的效果是,對方法中參數 的任何更改都會反映在調用方法中的潛在參數 變量中。參考參數的值是 總是與底層參數變量的值相同。

若要使用ref參數,無論是方法定義和調用 方法必須顯式使用ref關鍵字

傳遞之前,必須先進行初始化 傳遞到ref參數的參數。這與out參數不同,其參數 在傳遞之前不必顯式初始化。

所以改變方法簽名

public static void DrawString (ref String myString, List<String> myList, ref int get) 

和調用語句

TestClass.DrawString(ref testString, testList, ref goGet); 
+0

值得注意的是'int'和'List'之間的區別是一個是原始的,另一個是一個對象。 –

+0

謝謝,它工作,並且是一個很好的簡單答案。 – Grimat

相關問題