wcześniej, istnieje taka metoda dla Rectangle w MFC, nie wiem dlaczego nie ma dla wersji C#.dlaczego nie ma metody Center() klasy Rectangle w języku C#?
Odpowiedz
Prawdopodobnie nie uznano, że jest wystarczająco użyteczny, aby zasługiwać na włączenie.
Można łatwo dodać ją jako metodę rozszerzenia, jeśli chcesz choć (a jeśli używasz C# 3):
public static Point Center(this Rectangle rect)
{
return new Point(rect.Left + rect.Width/2,
rect.Top + rect.Height/2);
}
Zauważ, że jako wartości wyrażone są jako liczby całkowite, można łatwo skończyć uzyskanie niecałkowitej wartości, zakładając, że chcesz zwrócić wartość Point
, a nie inną strukturę przy użyciu decimal
lub double
.
Powyższe jest w rzeczywistości dlastruct . Jeśli mówisz o innym prostokącie, dodaj odpowiednie informacje, a ja poprawię odpowiedź.
Jak dodać to rozszerzenie do System.Drawing.Rectangle? – CallMeLaNN
@CallMeLaNN: Po prostu zadeklaruj go w statycznej, nie generycznej klasie najwyższego poziomu. Aby uzyskać więcej informacji, przeczytaj ogólnie o metodach rozszerzania, np. w MSDN. –
http://connect.microsoft.com/VisualStudio/feedback/details/93879/system-drawing-rectangle-needs-centerpoint-property to miejsce, w którym zostało zasugerowane formalnie. – Stobor
Istnieje w ramach (już nieobsługiwanego) Microsoft.XNA.Framework.
myRectangle.Center
zwraca Point
- 1. nie ma klasy C++
- 2. Dziedziczenie z klasy szablonu w języku C++
- 3. Dlaczego nie ma funkcji String.IsNumeric w języku C#
- 4. Dlaczego w języku Java nie ma lokalnej zmiennej statycznej?
- 5. dlaczego nie ma metody usuwania na HttpWebResponse
- 6. Dlaczego C++ ma ";" po deklaracji klasy
- 7. Dlaczego nie możemy utworzyć instancji interfejsu lub klasy abstrakcyjnej w języku Java bez metody anonimowej klasy?
- 8. Logowanie w języku C#: Uzyskiwanie wydajności klasy/nazwy metody
- 9. Dlaczego mapa nie ma metody mapy?
- 10. Dlaczego nie ma metody mapToInt() w klasie OptionalInt?
- 11. Dlaczego nie ma metody getContentView() dla działania?
- 12. Wywoływanie System.Delegate obiekt klasy w języku C#
- 13. Dlaczego nie można wywołać metody chronionej z klasy dziedziczącej w innym pakiecie w języku Java?
- 14. Dlaczego nie ma osłony w C++ domyślnie?
- 15. Dlaczego nie ma "static_if" w C++ 11
- 16. dlaczego główna metoda w języku C# jest zawsze umieszczana wewnątrz klasy, ale nie w C++
- 17. Wywołanie metody statycznej w języku C#
- 18. Dlaczego nie ma klasy Drzewo <T> w .NET?
- 19. Dlaczego Java nie ma metody putIfAbsent (klucz, dostawca) w Mapie?
- 20. Dlaczego struktura .Net nie ma priorytetowej klasy kolejki?
- 21. Jednoczesne zawijanie metody asynchronicznej w języku C#
- 22. Nie można znaleźć klasy HttpServerUtility w System.Web w języku C#
- 23. Dlaczego nie jest możliwe wyeksportowanie instancji klasy w języku TypeScript?
- 24. Jak działają metody asynchroniczne w języku C#?
- 25. Dlaczego w Scali nie ma cechy "Funktora"?
- 26. Dlaczego C nie ma literałów binarnych?
- 27. Wywołania metody analizy porównawczej w języku C#
- 28. Czyste metody wirtualne w języku C#?
- 29. Anuluj subskrypcję metody anonimowej w języku C#
- 30. Wdrożenie metody dekoratorów w języku C#
Uważam, że jest to dziwne przeoczenie, jak również. –