2015-12-05 45 views
-1

從ClassA的實例A中,我實例化ClassB,它啓動一個新線程並獲取輪詢循環。根據ClassB的發現,我希望它更新ClassA的實例A中的屬性。這可能嗎?我嘗試將「this」傳遞給ClassB構造函數,但沒有運氣。我看到如何爲ClassB提供任何其他類引用,我只是看不到如何爲它提供ClassA的實例A.C#:ClassA實例化ClassB,以便ClassB可以訪問ClassA屬性?

我會很樂意使用不同的模型,如果它可以給我相同的理論結果。也許這可以通過事件來完成?提前謝謝了。

我的代碼:

public class xxx 
{ 
    yyy ggg = new yyy(this); // "this" redlined by C# Express 
} 
public class yyy 
{ 
    public yyy(xxx InstantiatedBy) 
    { 
     MyInstantiator = InstantiatedBy; 
    } 
    xxx MyInstantiator = new xxx(); 
} 

錯誤消息是「關鍵字‘這’不是在目前情況下可用」

+3

當然這是可能的,只要你的班級具有基本的同步功能,只需要像通常那樣更新班級即可。還要添加一些代碼,因爲很難直觀地看到你想要做什麼。 – William

+3

你能否顯示你的_no luck_嘗試? –

+0

只是想知道,是Windows的任何類'窗體'?因爲只有UI的線程才能更新它,萬一這是你面臨的問題。 – Andrew

回答

1

只要把它在構造函數中:

public class xxx 
{ 
    private yyy ggg; 

    public xxx() 
    { 
     ggg = new yyy(this); // "this" redlined by C# Express 
    } 
} 
public class yyy 
{ 
    public yyy(xxx InstantiatedBy) 
    { 
     MyInstantiator = InstantiatedBy; 
    } 
    xxx MyInstantiator = new xxx(); 
} 
相關問題