Dans ma classe d'interface utilisateur, un développeur a la possibilité de définir une propriété d'emplacement (type de System.Drawing.Point). Par défaut, cette propriété est initialisée à Point.Empty. Le code interne qui est encapsulé par la classe utilise la propriété .IsEmpty de la propriété Point pour déterminer si un emplacement a été défini. Si la propriété n'est pas vide, la valeur x/y sera utilisée. S'il est vide, le code tentera de le placer avec un algorythme ligne/colonne. J'utilise le .IsEmpty de la propriété pour déterminer si elle a été définie.
À ma grande surprise, si un développeur met la propriété à 0,0, il apparaît comme vide. Un point de 0,0 est valide dans les graphiques. Je comprends également pourquoi le .IsEmpty renvoie vrai pour la valeur 0,0..NET Point.IsEmpty vs IsDefined
1) Sans créer ma propre classe ou hériter de System.Drawing.Point, existe-t-il un moyen de savoir si la propriété a été définie?
La seule idée que je peux penser est de par défaut la propriété avec une valeur de "new Point (-1, -1)" et de tester contre cela. Y a-t-il un meilleur moyen? Si non, veuillez confirmer.
J'utilise C# dans Visual Studio 2005 et Visual Studio 2008
Merci!
Les types nullables ont déjà deux propriétés "HasValue" et "Value" pas besoin de définir les vôtres. –
Oui je l'ai fait et mon point est que la définition de vos propres propriétés serait plus compliquée et n'ajouterait aucune valeur réelle à ce que le type nullable fournit. Stick avec le type Nullable. –
Cela dépend, avec votre propre valeur interne comme ceci, il n'y aurait aucun moyen de "désactiver" la valeur. Cela dépend de ce que la personne veut. –