我很奇怪,爲什麼下面被標記爲VS2010與no suitable method found to override
錯誤(.NET 4):默認參數和壓倒一切的
public override string ToString(int foo=0) {
// some stuff
}
我發現this這似乎有點類似(至少也是令人驚訝的行爲與可選參數),但我不明白爲什麼這種方法不覆蓋ToString()
。
現在我顯然知道如何輕鬆解決超載的ToString這個問題,所以我不感興趣在解決問題的方法,但在這種限制的理由。
但是有沒有什麼理由呢?我的意思是假定C#+可以很容易地改變這個規則而不會破壞任何東西,在我看來。那麼它只是一種「更簡單的方式」,或者是否存在任何會導致問題的角落案例? – Voo 2012-04-03 01:47:08
@Voo:我想不出任何的角落案例,但它可能會打破'callvirt'(這需要一個特定的方法簽名),無需大量修改。所以......「我認爲這樣簡單」。但有充分的理由。 – Ryan 2012-04-03 01:49:46