[英]Use any UIViewController subclass as generic parameter for method
我不想重复代码,因此我认为我使用了一种可以为我做到这一点的方法。 我想要做的是使用任何UIViewController
子类作为参数(通过引用)。 我尝试过这样的事情
private void removeViewController<T>(ref object viewController){
if (viewController != null) {
viewController = (T)Convert.ChangeType (viewController, typeof(T));
viewController.RemoveFromParentViewController ();
viewController.Dispose ();
viewController = null;
}
}
并以这种方式称呼它
removeFromContainer<CustomViewController> (ref customViewController);
但我不能编译。 我懂了
无法将“ ref CustomViewController”表达式转换为“ ref object”类型
在调用removeFromContainer和
类型“对象”不包含“ RemoveFromParentViewController”的定义,找不到类型为“对象”的扩展方法“ RemoveFromParentViewController”。
在我的方法中( removeFromContainer )。
我该如何解决? 我想念的是什么?
您可以将object
UIViewController
为UIViewController
类型,并在不使用泛型的情况下使用它。
private void removeViewController(object objviewController)
{
var viewController = viewController as UIViewController
if (viewController != null)
{
viewController.RemoveFromParentViewController();
viewController.Dispose ();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.