我在「公共ClassA的」 C#屬性如下傳遞C#屬性的功能通知其財產變更。使用REF
但是,如果我通過這個屬性屬於其他一些類,作爲參數的函數,並改變它的值從那裏我沒有得到通知。
這是因爲它是通過價值傳遞? 我以爲我會嘗試通過這與參考,但不編譯。
如何將此屬性傳遞給任何功能,仍然可以更改的通知?
我在「公共ClassA的」 C#屬性如下傳遞C#屬性的功能通知其財產變更。使用REF
但是,如果我通過這個屬性屬於其他一些類,作爲參數的函數,並改變它的值從那裏我沒有得到通知。
這是因爲它是通過價值傳遞? 我以爲我會嘗試通過這與參考,但不編譯。
如何將此屬性傳遞給任何功能,仍然可以更改的通知?
如果傳遞的屬性值設置爲另一種方法作爲參數,然後改變它的值,該屬性的值保持不變。
如何傳遞父對象和在接收端操縱其屬性?在所有的制定者屬於那個對象之後,而不是它所持有的價值。
你所提議會導致令人難以置信的臭代碼。一個簡單的方法來實現這一目標是要調用的函數,其返回值賦給你的財產:
this.Test = SomeObject.CallSomeFunction();
這將實現保持你的代碼,簡單好用的目標,它會觸發屬性更改通知。您可以調用目標函數並將調用者的引用傳遞給它(SomeObject.CallSomeFunction(this);
),但在99%的情況下,您不應該這麼做,因此目標函數可以操縱調用者的屬性。
是因爲它得到按值傳遞?
是
我想我會嘗試通過這個與裁判但這並不編譯
因爲只有字段和變量可以通過引用傳遞;屬性實際上更像方法(實際上是一對方法:get/set)。解決方法是做這樣的事情:
string test = Test;
SomeMethod(ref test);
Test = test;
但我希望它改變,並讓它的setter被調用。 –
是否有其他選擇,因爲這需要我對代碼進行一些重大更改。是否有任何通過引用傳遞屬性的解決方法? –