Bueno, ¿son propiedades X e Y (en lugar de campos)? Si es así, ese es el problema. Hasta que todos los campos dentro de x
estén definitivamente asignados, no puede llamar a ningún método o propiedad.
Por ejemplo:
public struct Foo
{
public int x;
public int X { get { return x; } set { x = value; } }
}
class Program
{
static void Main(string[] args)
{
Foo a;
a.x = 10; // Valid
Foo b;
b.X = 10; // Invalid
}
}
Es Vec2
su propio tipo? ¿Tiene acceso a los campos involucrados, o solo a las propiedades?
Si es su propio tipo, quisiera fuertemente le pido que intente adherirse a las estructuras inmutables. Sé que DirectX administrado tiene algunas estructuras mutables para obtener lo más cercano posible al rendimiento óptimo, pero eso es a costa de situaciones extrañas como esta, y mucho peor, para ser sincero.
personalmente me gustaría dar la estructura de un constructor teniendo X e Y:
Vec2 x = new Vec2(det * (a22 * b.X - a12 * b.Y),
det * (a11 * b.Y - a21 * b.X));
Ah, eran propiedades. ¡Buena atrapada! Consideraré que X e Y son privados si puedo salirse con la tuya. – mpen
+1. Bonito, Jon. –
Soy muy nuevo en esto y definitivamente agradecería una respuesta a esta duda: si puedo establecer x directamente como se muestra, ¿de qué sirve tener un método setter? Tengo el mismo problema, sin embargo, la estructura que tengo x ha establecido como un método público privado getter y setter para manipularlo. ¿Cómo debería trabajar con eso? – darnir