Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- public interface IToolKit {
- string[] GetTools();
- }
- public interface IParts {
- string[] GetParts();
- }
- public class IkeaKit<TContents> where TContents : IToolKit, IParts, new() {
- public virtual string Title {
- get; set;
- }
- public virtual string Colour {
- get; set;
- }
- public void GetInventory() {
- var contents = new TContents();
- foreach (string tool in contents.GetTools()) {
- Console.WriteLine("Tool: {0}", tool);
- }
- foreach (string part in contents.GetParts()) {
- Console.WriteLine("Part: {0}", part);
- }
- }
- }
- public class Chair : IToolKit, IParts {
- public string[] GetTools() {
- return new string[] { "Screwdriver", "Allen Key" };
- }
- public string[] GetParts() {
- return new string[] {"leg", "leg", "leg", "seat", "back", "bag of screws" };
- }
- }
- public class Adde : IkeaKit<Chair> {
- public override string Title { get { return "Fnood"; } }
- public override string Colour { get { return "Cyan"; } }
- }
- public class Markus : IkeaKit<Chair> {
- public override string Title { get { return "Snoolma "; } }
- public override string Colour { get { return "Orange"; } }
- }
- public class Program
- {
- public static void Main()
- {
- var chair = new Markus();
- chair.GetInventory();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement