在 Xamarin 中使用委托模式的正确方法是什么?
在 API 定义(由 生成sharpie
)中,我将协议映射到Interface
SomeDelegate:
// @protocol SomeDelegate <NSObject>
[Protocol, Model]
[BaseType (typeof(NSObject))]
interface SomeDelegate
{
// @required -(void)someMethod;
[Abstract]
[Export ("someMethod")]
void SomeMethod;
...
我已经像这样声明了视图控制器:
public partial class ViewController : UIViewController
但我不能让视图控制器像这样实现我的协议:(不能有多个基类)
public partial class ViewController : UIViewController, SomeDelegate
我可以delegate
在一些额外的类上实现它:
public ViewControllerDelegate : SomeDelegate
并将此类用作代表,但这对我来说并不是很方便。
我最近发现通过添加“I”:
public partial class ViewController : UIViewController, ISomeDelegate
我通过(我假设)明确说编译器这是接口(协议)而不是基类来避免出现“多个基类错误”。
现在我需要将委托作为方法的参数传递,并且有编译错误 - 无法将SomeDelegate
类型转换为SomeDelegate
有没有办法delegates
在某些类中实现UIViewController
(无论如何)?