Problemy są:C#: W jaki sposób należy zaimplementować ToString()?
- biblioteki GUI lubią używać
ToString
jako domyślnej reprezentacji dla klas. Tam musi być zlokalizowane. ToString
służy do logowania. Tam powinien dostarczać informacje związane z programowaniem, nie jest tłumaczony i zawiera stany wewnętrzne, takie jak klucze zastępcze i wartości wyliczeniowe.ToString
jest używany przez wiele operacji łańcuchowych, które pobierają obiekty jako argumenty, na przykładString.Format
, podczas zapisu do strumieni. W zależności od kontekstu oczekujesz czegoś innego.ToString
jest zbyt ograniczony, jeśli istnieje wiele różnych reprezentacji tego samego obiektu, np. długi i krótki formularz.
Ze względu na różne zastosowania, istnieje wiele różnych rodzajów realizacji. Są zbyt niewiarygodne, by być naprawdę przydatnym.
W jaki sposób należy wdrożyć ToString
, aby było przydatne? Kiedy należy użyć ToString
, kiedy powinno się go unikać?
The .NET Framework documentation mówi:
Ta metoda zwraca ludzki czytelny ciąg znaków, który jest wrażliwy na kulturę.
Istnieje similar question, ale nie to samo.
Nie spodziewałbym się tak wiele, gdyby nie był on nazywany niejawnie w każdym miejscu. Ale prawdopodobnie masz rację. Powinienem unikać tego, że jest on pośrednio użyty w UI. –