précédemment, il existe une telle méthode pour Rectangle dans MFC, je ne sais pas pourquoi il n'y a pas pour la version C#.pourquoi il n'y a pas de méthode Center() pour la classe Rectangle dans C#?
Répondre
On présume que cela n'a pas été jugé suffisamment utile pour justifier l'inclusion.
Vous pouvez facilement ajouter comme une méthode d'extension si vous voulez bien (et si vous utilisez C# 3):
public static Point Center(this Rectangle rect)
{
return new Point(rect.Left + rect.Width/2,
rect.Top + rect.Height/2);
}
Notez que les valeurs sont exprimées en nombres entiers, vous pourriez facilement vous retrouver obtenir une valeur non exacte, en supposant que vous souhaitez renvoyer un Point
plutôt qu'une autre structure en utilisant decimal
ou double
. Ce qui précède est en fait pour System.Drawing.Rectangle
struct. Si vous parlez d'un Rectangle différent, veuillez ajouter les informations appropriées et je modifierai ma réponse.
Comment ajouter cette extension à System.Drawing.Rectangle? – CallMeLaNN
@CallMeLaNN: déclarez-le simplement dans une classe statique, non générique et de premier niveau. Pour plus de détails, lisez les méthodes d'extension en général, par ex. dans MSDN. –
http://connect.microsoft.com/VisualStudio/feedback/details/93879/system-drawing-rectangle-needs-centerpoint-property est l'endroit où il a été formellement suggéré. – Stobor
Il existe dans le cadre Microsoft.XNA.Framework (n'est plus supporté).
myRectangle.Center
retourne un Point
- 1. Pourquoi existe-t-il un rectangle de cadre et un rectangle de limites dans un UIView?
- 2. Pourquoi la classe de méthode Java n'est-elle pas générique?
- 3. Appel de la méthode statique à partir de la classe B (extension de la classe A) de la classe A
- 4. Pourquoi SEL n'est-il pas une classe en Objective-C?
- 5. C# - Pourquoi ma classe Dictionary ne peut-elle pas voir la méthode ToArray()?
- 6. Zend_Rest_Server n'invoque pas la méthode de classe
- 7. Pourquoi ma méthode C# n'est pas appelée?
- 8. Pourquoi n'y a-t-il pas NSArrayController pour l'iPhone?
- 9. En C# 4.0, pourquoi un paramètre out dans une méthode ne peut-il pas être covariant?
- 10. Découvrez quelle classe a appelé une méthode
- 11. Y a-t-il une méthode init donnée pour la classe d'action struts2?
- 12. Pourquoi l'appel créé en tant que méthode de classe ne sauvegarde-t-il pas l'enregistrement?
- 13. Pourquoi l'importation de la classe pas nécessaire lorsque la méthode appelant exemple (Java)
- 14. Quelle classe a appelé ma méthode statique?
- 15. Récupère la classe qui a défini la méthode
- 16. Appeler méthode de classe de base de la méthode surchargée dans la sous-classe
- 17. Y a-t-il une sorte de "classe d'expression" (C++)
- 18. Pourquoi passer {a, b, c} à une méthode ne fonctionne pas?
- 19. Est-il possible de renvoyer une classe dérivée d'une méthode de classe de base en C++?
- 20. Pourquoi le fusible n'utilise pas la classe fournie dans file_class
- 21. Pourquoi ma méthode générique a-t-elle cessé de fonctionner?
- 22. C++ Appel de méthode de classe parent
- 23. Pourquoi l'appel SUPER de Perl n'utilise-t-il pas la méthode de la flèche?
- 24. Pourquoi la surcharge de méthode n'est-elle pas définie pour différents types de retour?
- 25. Pourquoi le compilateur C# émet-il une instruction callvirt pour un appel de méthode GetType()?
- 26. Démarrer des noms de classe ou de méthode avec des nombres, pourquoi pas?
- 27. dans quel but y at-il $ deferr, $ defout et pourquoi il n'y a pas de $ defin
- 28. Pourquoi n'y a-t-il pas de tri pour IList <T>?!?! (édité)
- 29. Pourquoi n'existe-t-il pas de méthode Linq pour renvoyer des valeurs distinctes par un prédicat?
- 30. C++/OpenGL - Rotation d'un rectangle
Je trouve cela une étrange omission aussi bien. –