method-overloading

    1熱度

    2回答

    如果爲某個方法添加第三個簽名,是否讓第二個和第三個變體直接調用第一個變體(實現的變體),還是讓第三個調用爲第二個,第二個爲第一個。 在我看來,額外的方法調用將會是你可能沒有的開銷,所以你希望所有的方法直接調用已實現的方法。 我想知道是否有人知道這樣做的任何「標準推薦方式」,或者如果它更個人的偏好或取決於上下文。當我向現有的重載方法添加一個新簽名時,我一直很好奇。你幾乎總是可以選擇以哪種方式來做到這

    2熱度

    1回答

    VS2005中的C#:你可以重載一個屬性的.ToString()方法嗎?

    4熱度

    7回答

    我知道這可能是一個非常簡單的問題,但我現在有一個大腦放屁。我正在嘗試創建一個可以採用2種自定義類型之一的方法。基本上這個方法的主體對於兩個類型都是相同的,因爲它們都有一個Name屬性(我正在比較Name屬性以用於排序)。我應該怎麼做? 我首先想到的是剛剛與兩種類型作爲參數重載方法: int Compare(Type1 first, Type1 second) int Compare (Type2

    6熱度

    2回答

    我想繼承兩個具有不同參數列表的同名方法派生類。其中一個是虛擬的,在派生類中被重寫,另一個是非虛​​擬的。這樣做時,我在嘗試從派生類對象訪問基類的非虛方法時遇到編譯錯誤。 這裏是代碼片段 class Base { public: void f() { cout << "[Base::f()]" << endl; } virtual void f(int

    4熱度

    7回答

    好的,我有一些從基類派生的一些不同的對象,我把它們放在一個列表中。我想遍歷列表並將每個方法推送到一個方法。我對每個人的簽名都有單獨的方法,但編譯器正在抱怨。有人能解釋爲什麼嗎?這是一個使用泛型的機會,如果是這樣,如何? class Base { } class Level1 : Base { } class Level2 : Level1 { } ... List<Base> oList

    1熱度

    2回答

    如果我打電話的QApplication的初始化沒有參數,我得到 TypeError: arguments did not match any overloaded call: QApplication(list-of-str): not enough arguments QApplication(list-of-str, bool): not enough argument

    14熱度

    6回答

    我知道類型擦除使他們看起來相等,類型,明智的,在運行時,使: class Bar { def foo[A](xs: A*) { xs.foreach(println) } def foo[A, B](xs: (A, B)*) { xs.foreach(x => println(x._1 + " - " + x._2)) } } 提供了以下編譯器錯誤: <console>:

    7熱度

    2回答

    我需要一個採用Action(或Func)的方法,但該Action有多個參數。什麼是最直接,最簡潔的方式來實現這些重載: public void Execute<T>(Action<T> action, T param) { // TODO: Implement something like: // Execute(action, param, null); } publi

    2熱度

    3回答

    我重構了大量使用case語句和emums的現有狀態機。我已經將它分解爲事件和事件處理程序對象,每個對象都對應一個狀態機。 eventHandlers返回新的事件以通過狀態機傳播。 所以,我的代碼看起來是這樣的: public class Event { //common fields and methods } public class SpecificEvent extends

    2熱度

    3回答

    我可能有這個錯誤,但我已經看到了創建一個重載的方法,在定義中調用自己的方式。它是這樣的: public void myFunction(int a, int b) { //Some code here } public void myFunction(int a) : this (a, 10) { } 這是不正確的語法,我知道,但我找不到正確的語法由於某種原因。這是什麼正確