我在這裏有一個問題:但問題是適用於任何方法重載。方法超載作爲默認
我有一個方法聲明,如:(巫不完全匹配的要求)
Public Shared Sub SetGridFormat(ByRef grid As DataGrid, ByVal width As Integer, ByVal height As Integer, ByVal paging As Boolean)
所以我腦子裏寫的情況下,過載,我需要這一個:
Public Shared Sub SetGridFormat(ByRef grid As DataGrid, ByVal width As Unit, ByVal height As Unit, ByVal paging As Boolean)
這兩個聲明是相同的,但高度和寬度的類型。我得到了「重載解析失敗,因爲沒有可訪問的'SetGridFormat'是這些參數最具體的」錯誤。
問題是:vb.net是否允許「默認」定義方法,以防構建者無法決定使用哪一個以及語法是什麼?
坦克幫助。
編輯:2調用看起來像:
SetGridFormat(dg, New Unit(100, UnitType.Percentage), New Unit(100, UnitType.Percentage), True)
SetGridFormat(dg, 100, 100,True)
從響應,我只需要指定的東西:大多數問題的答案將在大多數情況下工作,但不包括有問題的情況下,我不得不處理2個值可以設置爲空的位置(不需要特定大小)。
SetGridFormat(dg, Nothing, Nothing, True)
在這種情況下,兩個方法聲明是在視點編譯相同:
這可能是問題的根源。如果沒有這些案件,我會非常失望。 :(
我的問題是有沒有辦法強制編譯器在這種情況下使用特定的方法調用?
我不認爲有一個「默認」重載說明符。什麼是「單元」(一個類,一個枚舉等)? – 2012-08-09 13:03:58
當您調用該方法時,傳入該方法的參數的類型是什麼。顯然你傳遞的是既不是整數也不是單位。 – 2012-08-09 13:19:53