0

Xamarin で委任パターンを使用する正しい方法は何ですか?

API定義(によって生成されたsharpie)では、プロトコルがInterfaceSomeDelegateにマップされています:

// @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

4

1 に答える 1