Languages
[Edit]
PL

C# - przeładowanie metody toString()

7 points
Created by:
Marcino
720

W tym artykule chcielibyśmy pokazać jak przeładować metodę ToString() w języku C#.

W obiektowych językach programowania, dla wszytkich obiektów można stworzyć własną tekstową repreznetację. W języku C# służy do tego metoda ToString(), która zwraca domyślnie tekst w formacie some.namespace.ClassName.

Wynik wykonania metody ToString() wykorzystywany jest bardzo często:

  • przy debugowaniu, aby ułatwić śledzenie stanu obiektów,
    (w Microsoft Visual Studio podczass debugowania dostajemy uproszczony podgląd obiektów w postaci tekstowej, wygenerowany za pomocą ToString())
  • podczas logowania informacji na temat działania aplikacji,
    (takie logowanie może odbywać się jako: wypisywanie w konsoli lub zapisywanie w plikach informacji o tym, co dzieje się w aplikacji w danym momęcie, ułatwiając poszukiwanie błedów i problemów np. w przyszłosci)
  • podczas wyświetlania obiektów na niektórych komponentach,
    (np. komponent ListBox w Windows Forms domyślnie używa ToString(), aby wyświetlić elementy w postaci tekstowej na liście)
  • itp.

Szybkie rozwiązanie:

class SomeClass
{
    public override string ToString()
    {
        return "This is my new text representation of the object.";
    }
}

Uwaga: metoda ToString() dostępna jest domyślnie w każdym obiekcie, więc aby ją przeładować na inną, trzeba użyć słwa kluczowego override.

 

Praktyczny przykład

W poniższym przykładzie używamy metody Console.WriteLine(), która wypisuje w konsoli tekst, który może zostać utworzony z przekazanego w argumencie obiektu - do czego wykorzystywana jest metoda ToString().

using System;

namespace Application
{
    public class Program
    {
        public static void Main()
        {
            SomeClass someObject = new SomeClass();

            Console.WriteLine(someObject); // someObject jest automatycznie konwertowany na tekstową reprezentację.
        }
    }

    public class SomeClass
    {
        public override string ToString()
        {
            return "This is my new text representation of the object.";
        }
    }
}

Wynik programu:

This is my new text representation of the object.

 

ToString() przy debugowaniu

Aby lepiej zobrazować zalety przeładowywania metody ToString(), posłużymy się poniżej następujących przykładem: poprzez przeładowanie metody ToString() nie musimy rozwijać obiektów typu Student w narzędziach debugera, aby zobaczyć, gdzie jakie są używane.

Przykład przeładowania metody ToString() w C#.
Przykład przeładowania metody ToString() w C#.

 

Odnośniki

  1. Jak przesłonić metodę ToString (Przewodnik programowania w języku C#)

Alternative titles

  1. C# - przesłanianie metody toString()
  2. C# - nadpisanie metody toString()
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join