我有一個用於創建dll的公共類。它有一個變量和一個屬性。突然想到假設它看起來像這樣:當外部類改變屬性時,屬性設置器不能訪問
public class Main
{
private int _someInt = 0;
public int SomeInt
{
get { return this._someInt; }
set
{
this._someInt = value;
if (this._someInt == 1)
{
_someInt = 0;
}
}
}
public int ExecuteMain()
{
OtherClass.DoSomething(this.SomeInt);
}
}
我也有另一個類,在OtherClass
類單獨的項目,具有靜態DoSomething
方法:
public static void DoSomething(int someInt)
{
someInt = 1;
}
我的問題是SomeInt
Main
類中的屬性被DoSomething
方法OtherClass
設置爲1,但這不會觸發Main
類屬性中的setter。難道我做錯了什麼?
您只是設置參數的值,它與您通過的值之間沒有任何相關性,您可以通過'ref'或通過訪問變量的方式 – Sayse
我試着用「 out「關鍵字,但在這種情況下我不能使用屬性。當SomeInt更改爲1時,我需要捕獲事件。可以通過其他方式完成此任務嗎? –
給了它一個想法...我把int包裝在一個對象中。如果我沒有弄錯,對象是通過引用傳遞的,所以我應該改變它的值。價值的確改變了,但我仍然無法觸發二傳手。 –