c# - IOS 到 C# 什么等同于 id<>

标签 c# ios xamarin

我有一个 IOS 代码要用 c# 重写,它有这个 id<UIGestureRecognizerDelegate> gestureDelegate;

我如何用 C# 重写它?

@property (weak, nonatomic) id<UIGestureRecognizerDelegate> gestureDelegate;

实际上我是这样声明的 UIGestureRecognizerDelegate gestureDelegate;但这是对的吗? 如果我没看错的话,id就像var在 C# 中? 如果是这样,我如何将其声明为类参数?

最佳答案

C# interface就像protocol在 Objective-C 中,id<UIGestureRecognizerDelegate>表示该对象实现了 UIGestureRecognizerDelegate 中定义的方法.所以 C# 中的相同内容可能是(主要思想,未在 IDE 中测试):

interface UIGestureRecognizerDelegate {
   public bool gestureRecognizerShouldBegin(UIGestureRecognizer gestureRecognizer);
}

class Example {
   public UIGestureRecognizerDelegate gestureDelegate; //the equivalent
}

和一个符合接口(interface)的类:

public class ExampleViewController:UIViewController,UIGestureRecognizerDelegate {
   var example = Example();

   public ExampleViewController() {
       this.example.gestureDelegate = this;
   }

   //implements the methods of interface UIGestureRecognizerDelegate
   public bool gestureRecognizerShouldBegin(UIGestureRecognizer gestureRecognizer) {
       //......
   }
}

关于c# - IOS 到 C# 什么等同于 id<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43733177/

相关文章:

ios - 在 iOS 中查找字符串中的标签

ios - 为什么我无法在新的 iPad Xamarin 应用程序中构建?

javascript - 如何从 asp.net 中的代码隐藏运行确认对话框

c# - WPF 边框形状

ios - 无法正确转换 JSON 字典中的值

ios - BLE MTU 更高但速度相同

ios - Visual Studio for Mac 可以编译但无法运行 iOS 应用

android - Xamarin 未正确安装

C#处理固定宽度的文件

c# - C# 控制台应用程序的新遗留设置