2016-02-03 63 views
1

從不調用File2中的部分方法。如何在File2中呼叫Init()部分方法不叫?

文件1

public partial class frmMy001 : Form, ITab1View 
{ 
    public frmMy001() 
    { 
     Init(); 
    } 

    partial void Init(); 
} 

文件2

public partial class frmMy001 : Form, ITab2View 
{ 
    partial void Init(); 

    partial void Init() 
    { 
     ...// Breakpoint never hit 
    } 
} 
+1

當前代碼無法編譯,「部分方法可能沒有多個定義聲明」。請發佈[mcve]。 –

+0

@JonSkeet它實際上編譯我的VS 2015.刪除部分簽名雖然編譯失敗。 – ca9163d9

+2

這表明你已經擁有了不同的命名空間。 (這是一個* complete *例子會突出顯示的東西。)作爲另一種證明的方式,嘗試在一個部分中添加一個公共成員,然後從另一部分中調用它 - 我懷疑你會發現你可以'噸。 –

回答

2

文件中刪除該聲明

public partial class frmMy001 : Form, ITab2View 
{ 
    // partial void Init(); <-- remove this 

    partial void Init() 
    { 
     ...// Breakpoint never hit 
    } 
} 

你ř局部方法必須滿足以下條件:

  • 簽名在部分類型的兩個部分必須匹配。
  • 該方法必須返回void。
  • 不允許訪問修飾符。部分方法隱含私有。
+0

更好地評論它以突出您所談論的內容,而不是完全刪除它。 –

1

部分方法簽名應該只在部分類的一部分中聲明。嘗試刪除'部分無效Init();'來自File2的聲明。

+0

OP提供的代碼甚至不會編譯... –