我遇到了一些奇怪的事情,並且已經有了解決方法,但是我認爲我沒有很好地理解它。如何正確處理對象
如果我請撥打了無數次的方法類中:
public void Method()
{
Foo a = new Foo();
a.Delegate1Handler = ViewSomething();
}
如果我叫()方法多次在課堂上,它是...我重新初始化「一」的一個實例每次,但由於某種原因,a.Delegate1Handler
仍然是來自前面的初始化,因此ViewSomething()被一次又一次地調用...。
Foo的膽量樣子:
public delegate void Delegate1(T t);
public Delegate1 Delegate1Handler { get; set; }
編輯:(解決方法,我把在下面描述,但我還是不明白究竟爲什麼它表現這樣的) - >
初始化「a」,它是「Method」之外的delegate1Handler,其中delegate1Handler僅初始化一次,「a」可以再次重新初始化 - 沒問題! (或者也許是我不知道)
那麼,有什麼解決辦法? – tzaman 2010-06-11 20:41:05
你可以請發佈實際的代碼,而不是一個虛假的版本嗎?我懷疑問題出在您發佈的代碼中,因爲它不應該表現出您所描述的問題。 – 2010-06-11 20:44:18
也許你應該發佈更多的代碼,以澄清你的怪異行爲。爲什麼你使用委託字段而不是公共事件? – 2010-06-11 20:49:31