在我的 monodroid 应用程序中,我需要将许多类型的 CLLocation 对象分配给 null 值。我需要它来检测某些特定条件。例如,假设一个函数对 CLLocationCooperative2D 对象执行某些操作,我们希望 if 和异常符合此函数,它返回 null。但是 monotouch 不允许此类型为 null 值。
这是我用于此建议的测试方法:
private static CLLocationCoordinate2D sampleMethod ()
{
try {
return new CLLocationCoordinate2D ();
} catch (Exception ex) {
return null;
}
}
和错误一致:
Error CS0037: Cannot convert null to `MonoTouch.CoreLocation.CLLocationCoordinate2D' because it is a value type (CS0037) (Realtyna_iPhone_Project)
在这种情况下我们应该怎么做?
最佳答案
CLLocationCooredinate2D 是值类型,不能为 null。但是,C# 允许您将值类型包装在 Nullable 中。包装器,以便它们可以包含空值。
例如,这应该是有效的:
private CLLocationCoordinate2D? ProcessLocation ()
{
CLLocationCoordinate2D? retLoc;
try {
// do something with retLoc here
} catch (Exception ex) {
retLoc = null;
}
return retLoc;
}
关于iphone - CLLocationCooperative2D 空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799478/