using System.Collections.Generic;
public string Type{get;set;}
public string Name{get;set;}
public string Area{get;set;}
public static void Main()
List<Item> items = new List<Item>();
items.Add(new Item{ Type="Circle", Name="BlueCircle", Area="12cm²" });
items.Add(new Item{ Type="Triangle", Name="White Triangle", Area="15cm²"});
items.Add(new Item{ Type="Square", Name="Red Square", Area="16cm²"});
foreach(var item in items)
Console.WriteLine("{0} - {1} - {2}",item.Type,item.Name,item.Area);
Console.WriteLine("Please Enter the new type you want to add :");
string typeInput = String.Format(Console.ReadLine());
Console.WriteLine("Enter a Name for your Shape:");
string nameInput = String.Format(Console.ReadLine());
Console.WriteLine("Enter the area of your Shape:");
string areaInput = String.Format(Console.ReadLine());
var newItem = string.Concat(typeInput + " " , nameInput + " " , areaInput);
Console.WriteLine("{0}",newItem);
string[] thisArray = newItem.Split(' ');
items.AddNewItem(new Item{ Type=thisArray[0], Name= thisArray[1], Area=thisArray[2] });
var pricer = new Pricer() ;
var cout1 = pricer.Price(superficie);
foreach(var item in items)
Console.WriteLine("{0} - {1} - {2} - {3}€",item.Type,item.Name,item.Area,cout1);
var pricer1 = new OtherPricer() ;
var cout2 = pricer1.Price(superficie);
foreach(var item in items)
Console.WriteLine("{0} - {1} - {2} - {3}€",item.Type,item.Name,item.Area,cout2);
public static class Service
public static List<T> AddNewItem<T>(this List<T> myList,T item)
int Price(int superficie) ;
public abstract class BasePricer : IPricer
public abstract int Price(int superficie);
public class Pricer : BasePricer
public override int Price(int superficie)
public class OtherPricer : BasePricer
public override int Price(int superficie )