基本上我希望能夠有一個類的實例內的變量的引用,但我希望引用成爲一個類變量,所以我不需要把它周圍的類內的參數c#:從類的構造函數保留ref參數
代碼:
int num = 0;
myClass(num);
print num; // output is 0 but i'd like it to be 10 :)
class myClass
{
private int classNumber;
myClass(ref int number)
{
print number; //output is 0
// id like this to be a reference to the refenrence
classNumber = number;
DoSomething();
}
public void DoSomething()
{
ClassNumber = 10;
}
}
爲什麼我問這是因爲我用的WinForms工作,具有主窗體發送一個類的實例,以新窗體應該編輯類並將其發回..現在我使用Form.ShowDialog()來避免用戶在使用新窗體進行編輯時使用主窗體,來自新表格的數據
editForm edtfrm = new editForm(ref instanceOfClass);
edtfrm.showDialog();
//grab the instance back
instanceOfClass = edtfrm.editedClass;
我該如何解決這個問題?我不喜歡這個解決方案
你的兩個問題似乎完全無關。你確定問題1的解決方案將幫助你解決問題2嗎? – Heinzi 2011-03-10 14:39:17
「問題2」就是我如何解決這個困境atm ..通過創建一個我參考的副本,然後當我完成編輯它複製回來,在問題1,如果我做「classNumber」公開和打印之前我會做'NUM = myClass.classNumber' – Tistatos 2011-03-10 14:45:43
由於'instanceOfClass'是一個參考,你並不需要使用'ref'傳遞給它(因爲你想改變*內容*'的instanceOfClass',沒有指針本身)。我也不明白爲什麼你必須「搶回實例」... instanceOfClass和editedClass仍然應該指向內存中的同一個對象,不是? – Heinzi 2011-03-10 15:08:51