我有一個包含兩個方法像這樣一類:C#編譯器拋出無效參數錯誤。爲什麼?
public String getFoo(Int32 a)
{
return getBar(a, "b", null);
}
public String getBar(Int32 a, String b, Int32 c)
{
//do something
return "";
}
然而,當我編譯我的課,我得到兩個錯誤:
- 爲getBar(整型,字符串,整數的最佳重載的方法匹配)有一些無效參數
- 參數 '3':無法從 '
<null>
' 轉換爲 'INT'
我想我unders爲什麼我得到這個錯誤:編譯器在編譯時不知道 什麼是對象的實際類型。 有人可以確認我對錯誤原因是否正確或指出真實原因?
更重要的是,我可以這樣設計我的代碼嗎?如果是這樣,我需要做些什麼來修復錯誤?我這樣設計我的類的理由是因爲我不想在getFar中複製getBar中的代碼。這兩種方法基本上是一樣的,除了一個取得第三個參數。
謝謝。
謝謝大家。這正是我需要知道的。我有一個關於Int32的錯誤假設,因爲我認爲它是一個從System.Object繼承的對象。喬納森的回答真的解決了這個問題。 堆棧溢出岩石! – Notorious2tall 2008-11-06 21:36:15