Eh bien, sont des propriétés X et Y (plutôt que les champs)? Si oui, c'est le problème. Tant que tous les champs x
ne sont pas affectés, vous ne pouvez appeler aucune méthode ou propriété.
Par exemple:
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
}
}
Est-Vec2
votre propre type? Avez-vous accès aux champs concernés, ou seulement aux propriétés?
Si c'est votre propre type, je voudrais vivement vous demander d'essayer de coller à des structures immuables fortement. Je sais que DirectX a des structures mutables qui lui permettent de se rapprocher le plus possible des performances optimales, mais c'est au prix de situations étranges comme celle-ci - et pire, pour être honnête.
que je donnerais personnellement struct un constructeur prenant X et Y:
Vec2 x = new Vec2(det * (a22 * b.X - a12 * b.Y),
det * (a11 * b.Y - a21 * b.X));
Ah, ils étaient des propriétés. Bonne prise! Je vais considérer X et Y comme privés si je peux m'en sortir. – mpen
+1. Sympa, Jon. –
Je suis très nouveau à ce sujet et apprécierais certainement une réponse à ce doute: Si je peux mettre x directement comme indiqué, quelle est l'utilité d'avoir une méthode setter? J'ai le même problème, cependant, la structure que j'ai a été définie comme des méthodes getter et setter publiques privées pour la manipuler. Comment devrais-je travailler avec ça? – darnir