CLLocationCoordinate2D null值

时间:2013-02-10 15:47:01

标签: iphone xamarin.ios mkmapview

在我的monodroid应用程序中,我需要将CLLocation对象分配给null值。我需要它来检测一些特定的条件。例如假设一个函数对CLLocationCoordinate2D对象执行某些操作,并且我们希望if和exeption在此函数中返回null.But 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)

在这种情况下我们该怎么做?

1 个答案:

答案 0 :(得分:2)

CLLocationCooredinate2D是一个值类型,不能为null。但是,C#允许您将值类型包装在Nullable包装器中,以便它们可以包含空值。

例如,这应该是有效的:

private CLLocationCoordinate2D? ProcessLocation ()
{
    CLLocationCoordinate2D? retLoc;

    try {
        // do something with retLoc here
    } catch (Exception ex) {
        retLoc = null;
    }

    return retLoc;
}