Meddelande

Minska
No announcement yet.

override av ToString()

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • override av ToString()

    Hej,
    Jag har en entityklass med en metod som returnerar en array av enumer.
    Som exempel så här:
    Kod:
    public class Entity
    {
         ...
         public CustomType[] GetCustomTypes()
         {
              return new CustomType[]{ foo, bar };
         }
    }
    Nu skulle jag vilja kunna skriva så här:
    Kod:
    Entity entity = new Entity();
    Response.Write(entity.GetCustomTypes().ToString());
    Och resultatet blir då kort och gott:
    foo, bar

    Alltså en kommaseparerad sträng.
    Hur gör jag om jag vill overrida ToString() på detta sätt?

  • #2
    Du kan inte overridea en array av nåt. Du kan göra t.ex. en collection av det:
    Kod:
    	public class IntCollection : Collection<int>
    	{
    		public override string ToString()
    		{
    			return string.Join(",", this.Select(i => i.ToString()).ToArray());
    		}
    	}
    Eller göra en extension metod:
    Kod:
    	public static class ArrayExtension
    	{
    		public static string ToCommaSeparatedString<T>(this T[] items)
    		{
    			return string.Join(",", items.Select(item => item.ToString()).ToArray());
    		}
    	}
    /Erik
    "My love for you is like a truck, BERSERKER"
    "Would you like some making f**k, BERSERKER"

    Kommentera


    • #3
      En extension ser ju trevligt ut!

      Kommentera

      Working...
      X