---
title: "public override string ToString(), på ett objekt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/133270-public-override-string-tostring-på-ett-objekt"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Mc Fetto"
published: "2005-08-25T07:22:33.000Z"
updated: "2005-09-10T21:13:11.000Z"
replies: 20
views: 1045
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/133270-public-override-string-tostring-på-ett-objekt"
---

# public override string ToString(), på ett objekt

_Sida 1 av 2._

## #1 — Mc Fetto, 2005-08-25T07:22Z

Jag har ett objekt som ärver av ArrayList och i detta objekt kör jag följande: 

```
        public override string ToString()
        {
            return _description;
        }
```

Detta för att kunna fylla en annan arraylist med obekten och sedan binda dem till en combobox. Problemet är det att i comboboxens fäls syns endast "(collection)" och inte \_description från objekten. Detta fungerar på andra objekt vilket förbryllar mig. public overrid "kör" väl över alla andra ToSting() i basklasser mm? Ideer på vad felet kan vara är tacksamma :)

Permalänk: https://www.webforum.nu/p/133270

## #2 — juventus1, 2005-08-25T08:45Z

Hur ser det objekt du försöker binda ut? Så här?

ArrayList
\--- DinArrayList
\------ DinaObjekt

Permalänk: https://www.webforum.nu/p/1662623

## #3 — Mc Fetto, 2005-08-25T10:50Z

\-- arraylist "list": som binds mot comboboxen
\-- "list" innehåller objekt som ärver av ArrayList och har egna attribut med. I denna class kör jag överridningen av ToString().

Permalänk: https://www.webforum.nu/p/1662670

## #4 — Gladh, 2005-08-25T12:48Z

Det är inte din "Collection klass" som du skall ha override på utan de klasser som du lagrar i din collection klass.

\- M

Permalänk: https://www.webforum.nu/p/1662697

## #5 — Mc Fetto, 2005-08-25T12:56Z

Nu hänger jag inte med riktigt, jag har följande klass som sedan hämtas upp och läggs i en arraylist:

```
        public class SearchItem : ArrayList
        {
            private string _descritpion;
            ..
            public SearchItem()
            {

            }

            public override string ToString()
            {
                return _description;
            }
        }
```

Alltså har jag i slutändan en arraylist i användargränssnittet som innehåller SearchItem vars \_description ska skrivas ut i combon. Hur ska jag då göra? :q

Permalänk: https://www.webforum.nu/p/1662700

## #6 — Gladh, 2005-08-26T05:36Z

Nu hänger jag verkligen inte med.

Så här gör jag i min vardag.

1\. En klass som heter SearchItem

```
public class SearchItem{
  private string _Description;
 
  public string Description{
    get{return _Description;}
  }

  public override string ToString(){
    return _Description;
  }

  public SearchItem(){}
}
```

2\. Sedan har jag en SearchItemCollection klass

```
public class SearchItemCollection : ArrayList{
  .
  .
  .
}
```

När jag sedan använder mig av SearchItem så lägger jag till de i min SearchItemCollection vilket gör att jag kanske har 10 olika SearchItem som finns i min SearchItemCollection klass.

När jag sedan vill visa innehållet i min SearchItemCollection så binder jag den klassen mot en dropdownlista/combobx

```
myComBox.DataSource = mySearchItemCollection;
```

Det fungerar bra... 

\- M

Permalänk: https://www.webforum.nu/p/1662940

## #7 — Mc Fetto, 2005-08-26T06:06Z

Jo, men det är det jag gör, fast jag vill ha flera SearchItemCollection i en arraylist. :)

Permalänk: https://www.webforum.nu/p/1662943

## #8 — Gladh, 2005-08-26T11:13Z

> Jo, men det är det jag gör, fast jag vill ha flera SearchItemCollection i en arraylist

Aahhha...

Märkligt att det inte fungerar med override på din "searchItemCollection"...

\- M

Permalänk: https://www.webforum.nu/p/1663007

## #9 — Guffa, 2005-08-27T07:07Z

När du hämtar ut din referens ifrån ArrayList-objektet så är det en referens till ett object av typen Object. Du måste typa om referensen till en searchItemCollection-referens för att den ska använda searchItemCollection.ToString istället för Object.ToString.

Permalänk: https://www.webforum.nu/p/1663157

## #10 — Mc Fetto, 2005-08-30T17:31Z

> **Guffa skrev:**
>
> När du hämtar ut din referens ifrån ArrayList-objektet så är det en referens till ett object av typen Object. Du måste typa om referensen till en searchItemCollection-referens för att den ska använda searchItemCollection.ToString istället för Object.ToString.

Jag antar att detar att det ar det jag gor nar jag kor en foreach searchitemcollection in "arrayList".

Permalänk: https://www.webforum.nu/p/1664035

## #11 — Guffa, 2005-09-01T10:24Z

Hur hämtar du ut dina SearchItem ur varje SearchItemCollection, då?

Permalänk: https://www.webforum.nu/p/1664499

## #12 — Mc Fetto, 2005-09-02T00:19Z

Finns inga searchitem på det sättet, det ända är searchitemcollection som ärver av arraylist och som även innehåller lite andra propertys.

Permalänk: https://www.webforum.nu/p/1664769

## #13 — Gladh, 2005-09-02T06:15Z

Jag har testat och hade inga problem med att fylla en combox i ett winform och där skriva ut det som stop i ToString() methoden

```
.
.
.
		private void Init()
		{
			System.Collections.ArrayList arrayList = new ArrayList();

			arrayList.Add(new SearchItemCollection());
			arrayList.Add(new SearchItemCollection());
			arrayList.Add(new SearchItemCollection());
			arrayList.Add(new SearchItemCollection());
			arrayList.Add(new SearchItemCollection());

			comboBox1.DataSource = arrayList;

		}
	}

	public class SearchItemCollection : System.Collections.ArrayList
	{
		public override string ToString()
		{
			return "Magnus rules";
		}
	}
```

Gav mig ett winform med en combox där det fanns några "Magnus rules" element. Så du måste göra något annat konstigt.

\- M

Permalänk: https://www.webforum.nu/p/1664785

## #14 — Gladh, 2005-09-02T06:17Z

Här kommer förresten bildbevis :)

Bilagor:

- [magnusrules.gif](https://www.webforum.nu/a/7445.gif)

Permalänk: https://www.webforum.nu/p/1664786

## #15 — Mc Fetto, 2005-09-02T08:09Z

> **Gladh skrev:**
>
> Här kommer förresten bildbevis :)

:) Tack för beviset, det fungerar ju fint för mig med på andra ställen. Ska ta en titt på det på måndag igen.. återkommer :bire

Permalänk: https://www.webforum.nu/p/1664827

## #16 — Mc Fetto, 2005-09-08T13:33Z

Lustigt, nu när jag tittat på det igen så kollar jag av hur det ser ut i min foreach-sats. I debugläget så ser man att sic.ToString() är satt till "Testsök", vilket är korrekt. Men lik förbannat så blir det som beskrivits i första inlägget :(

Permalänk: https://www.webforum.nu/p/1669706

## #17 — Mc Fetto, 2005-09-10T18:37Z

Ingen som har någon bra idé på vad det kan vara. Kör .NET 2.0 men det känns inte som det borde vara en bugg.

Permalänk: https://www.webforum.nu/p/1670564

## #18 — Mc Fetto, 2005-09-10T20:03Z

Om jag tar bort arvet till ArrayList på mitt objekt så returnerar den description som hämtas ur överridningen av ToString(). Hur ska jag göra för att få rätt på det hela?

Här kommer kodex: 

```
public class SearchItemCollection : ArrayList
    {
        public SearchItemCollection() { }

        public string _description;  

        public override string ToString()
        {
            return _description;
        }
    }
```

Och användargränssnittet:

```
            SearchItemCollection sic1 = new SearchItemCollection();
            sic1.Description = "ett";

            SearchItemCollection sic2 = new SearchItemCollection();
            sic2.Description = "två";

            SearchItemCollection sic3 = new SearchItemCollection();
            sic3.Description = "tre";

            ArrayList arr = new ArrayList();
            arr.Add(sic1);
            arr.Add(sic2);
            arr.Add(sic3);

            for (int i = 0; i < arr.Count; i++)
            {
                SearchItemCollection sic = (SearchItemCollection)arr[i];
                comboBox1.Items.Add(sic);
            }
```

Denna koden skapar tre objekt i comboboxen som visar "(Collection"). Tar jag som jag skrev ovan bort arvet av ArrayList så skrivs ett, två tre ut.

Permalänk: https://www.webforum.nu/p/1670580

## #19 — Mc Fetto, 2005-09-10T20:26Z

Klipp och klistrade Gladhs kod och fick samma resultat som jag tidigare fått (ifs inte oväntat då det var samma som den jag pressenterade i förra inlägget).

Permalänk: https://www.webforum.nu/p/1670585

## #20 — emission, 2005-09-10T20:51Z

Det här tål att forskas vidare i, men faktum är att det verkar vara en bugg (eller redesign). .NET 2.0 beter sig faktiskt annorlunda när det gäller detta.

Om du vill lösa själva problemet så rekommenderar jag att du gör en string-property på din SearchItem ("Description"), och anger den som DisplayMember för comboboxen. Då borde det inte kunna gå snett.

Permalänk: https://www.webforum.nu/p/1670590

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/133270-public-override-string-tostring-på-ett-objekt  
Nästa sida: https://www.webforum.nu/amne/dotnet/133270-public-override-string-tostring-på-ett-objekt/page2.md
