Wie funktionieren Erweiterungsmethoden?

Ich möchte in Unity3d eine Erweiterungsmethode für die Vector3-Klasse erstellen. Aber ich scheine es nicht ganz zu verstehen. Das habe ich:

public static class ExtensionMethods{

    public static Vector3 MaxValue(this Vector3 _vec3)
    {
        return new Vector3(float.MaxValue,float.MaxValue,float.MaxValue);
    }
}

Nun möchte ich ein @ machVector3.MaxValue so wiefloat.MaxValue mit dieser Codezeile:

Vector3 closestPoint = Vector3.MaxValue;

Aber dann bekomme ich diesen Fehler:

error CS0117: `UnityEngine.Vector3' does not contain a definition for `MaxValue'

Ich weiß, dass das funktionieren würde:

Vector3 closestPoint = new Vector3().MaxValue();

Aber dann erstelle ich 2 neueVector3 Instanzen. Einer imMaxValue call und eins draussen. Ist es nicht möglich, einfach einen zu erstellen und diesen Code zu verwenden:

Vector3 closestPoint = Vector3.MaxValue;

Antworten auf die Frage(4)

Ihre Antwort auf die Frage