Xamarin で委任パターンを使用する正しい方法は何ですか?
API定義(によって生成されたsharpie
)では、プロトコルがInterface
SomeDelegateにマップされています:
// @protocol SomeDelegate <NSObject>
[Protocol, Model]
[BaseType (typeof(NSObject))]
interface SomeDelegate
{
// @required -(void)someMethod;
[Abstract]
[Export ("someMethod")]
void SomeMethod;
...
次のようにView Controllerを宣言しました:
public partial class ViewController : UIViewController
しかし、このようにプロトコルを実装するためにView Controllerを作成することはできません:(複数の基本クラスを持つことはできません)
public partial class ViewController : UIViewController, SomeDelegate
delegate
これを追加のクラスに実装できます。
public ViewControllerDelegate : SomeDelegate
このクラスをデリゲートとして使用しますが、これは私にとってあまり便利な方法ではありません。
最近、「I」を追加することで次のことがわかりました。
public partial class ViewController : UIViewController, ISomeDelegate
これは基本クラスではなくインターフェース(プロトコル)であるとコンパイラーに明示的に言う(と思います)ことにより、「複数の基本クラスエラー」を回避します。
メソッドのパラメーターとしてデリゲートを渡す必要があり、コンパイルエラーが発生しました-SomeDelegate
型をに変換できませんSomeDelegate
(whatever)delegates
のようないくつかのクラスに実装する方法はありますか?UIViewController