我有一个 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/