将目标 C 转换为 C# - 与此代码等效
本文关键字:代码 目标 转换 | 更新日期: 2023-09-27 17:56:17
我正在将一些Objective C代码转换为C#,以便在Monotouch iPhone应用程序中使用。
在目标C中,测试以下等效条件:
if ([cell.backgroundView class] != [UIView class])
... do something
单元格是一个UITableViewCell
。
在 C# 中,我想使用以下方法(到目前为止)测试相同的条件:
if ( !(cell.BackgroundView is UIView))
... do something
对目标C代码的理解是否正确,即它测试cell
的类型?C# 中的等效项是什么?
看起来不错,除非UITableViewCell
继承自UIView
。
在这种情况下,您将需要
if (cell.BackgroundView.GetType() != typeof(UIView))
... do something
在 Objective-C 中测试类型的正确方法是这样的:
if ([[cell backgroundView] isKindOfClass:[UIView class]]) {
//the backgroundView is a UIView (or some subclass thereof)
}
如果要测试显式成员资格,可以执行以下操作:
if ([[cell backgroundView] isMemberOfClass:[UIView class]]) {
//the backgroundView is a UIView (and not a subclass thereof)
}