2

私の monodroid アプリケーションでは、CLLocation オブジェクトを null 値に割り当てる必要がある多くの型があります。いくつかの特定の条件を検出するために必要です。たとえば、CLLocationCoordinate2D オブジェクトに対して何かを行う関数を想定し、この関数に一致する場合は null を返しますが、モノタッチではこの型の 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)

この状態で、私たちはどうすればいいですか?

4

1 に答える 1

2

CLLocationCooredinate2D は値型で、null にすることはできません。ただし、C# では、値の型をNullableラッパーでラップできるため、null 値を含めることができます。

たとえば、これは有効である必要があります。

private CLLocationCoordinate2D? ProcessLocation ()
{
    CLLocationCoordinate2D? retLoc;

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

    return retLoc;
}
于 2013-02-11T01:12:06.450 に答える