2011-01-26 24 views
0

我有一個WPF UserControl實現ISlider與一些CustomEvent(請參閱前面的集Why I cannot compile a Custom Event declared in a Class Interface in C#)。現在測試C#類接口支持時編譯問題

我的問題是下面的代碼,不希望編譯:

 ISlider ISlider; 
     ISlider = slider as ISlider; 
     if (ISlider != null) 
     { 
      ISlider.CustomEvent += new CustomEvent(OnCustomEvent); 
     } 
     else 
     { 
      this.slider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(this.slider_ValueChanged); 
     } 

,因爲用戶控件沒有ValueChanged事件像WPF標準控件做。

因此該行:

this.slider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(this.slider_ValueChanged); 

不能編譯。

所以我不得不在我的ISlider接口中人爲地創建一個ValueChanged事件,我沒有使用它,只是爲了滿足編譯器?

+3

將變量完全命名爲類型通常是個壞主意。不知道這是否是你的問題,但試着將變量`ISlider`重命名爲`iSlider`。 – 2011-01-26 19:46:26

+0

你沒有告訴我們哪一行不能編譯,我同意Albin - 你真的不應該把變量命名爲與它的類型相同......它肯定會引起混淆。 – 2011-01-26 19:47:44

回答

2

所以我不得不人爲地創建一個ValueChanged事件...只是爲了滿足編譯器?

是的。