Jak zastąpić metodę ToString (Przewodnik programowania w języku C#)

Każda klasa lub struktura w języku C# niejawnie dziedziczy klasę Object . W związku z tym każdy obiekt w języku C# pobiera metodę ToString , która zwraca reprezentację ciągu tego obiektu. Na przykład wszystkie zmienne typu int mają metodę ToString , która umożliwia im zwracanie zawartości jako ciągu:

int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42

Podczas tworzenia niestandardowej klasy lub struktury należy zastąpić metodę ToString , aby podać informacje o typie kodu klienta.

Aby uzyskać informacje o sposobie używania ciągów formatu i innych typów niestandardowego formatowania z ToString metodą , zobacz Typy formatowania.

Ważne

Jeśli zdecydujesz, jakie informacje należy podać za pomocą tej metody, rozważ, czy klasa lub struktura będą kiedykolwiek używane przez niezaufany kod. Należy zachować ostrożność, aby upewnić się, że nie podasz żadnych informacji, które mogą zostać wykorzystane przez złośliwy kod.

Aby zastąpić metodę ToString w klasie lub strukturę:

  1. Zadeklaruj metodę ToString za pomocą następujących modyfikatorów i zwracanego typu:

    public override string ToString(){}  
    
  2. Zaimplementuj metodę, aby zwracała ciąg.

    Poniższy przykład zwraca nazwę klasy oprócz danych specyficznych dla określonego wystąpienia klasy.

    class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    
        public override string ToString()
        {
            return "Person: " + Name + " " + Age;
        }
    }
    

    Możesz przetestować metodę ToString , jak pokazano w poniższym przykładzie kodu:

    Person person = new Person { Name = "John", Age = 12 };
    Console.WriteLine(person);
    // Output:
    // Person: John 12
    

Zobacz też