Тема: Як об'єднати два класи
Доброго вечора!
Не знаю як правильно треба було мені створити заголовок 
Отже, є завдання, яке потребує,  створити класс вагон, який буду складатись з типу вагона та його номера; та реалізувати стек, де будут ці вагони.
Я зробив стек:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
interface IStack {
    Boolean Empty();
    object Pop();
    object Push(object element);
    object Peek();
    void Display();
}
class Stack : IStack {
    int StackSize;
    int top;
    object[] item;
    public int StackSizeProperty {
        get { return StackSize; }
        set { StackSize = value; }
    }
    public Stack() {
        StackSizeProperty = 10;
        item = new object[StackSize];
        top = 0;
    }
    public Stack(int capacity) {
        StackSizeProperty = capacity;
        item = new object[StackSizeProperty];
        top = 0;
    }
    public bool Empty() {
        if (top == 0) {
            return true;
        }
        return false;
    }
    public object Push(object element) {
        if (top == StackSize) {
            Console.WriteLine("Stack is full.");
            return "Stack is full.";
        }
        else {
            item[++top] = element;
            Console.WriteLine("Item was been pushed.");
            return "item was been pushed.";
        }
    }
    public object Pop() {
        if (Empty()) {
            Console.WriteLine("Stack is empty.");
            return "Nothing.";
        }
        else {
            return item[top--];
        }
    }
    public object Peek() {
        if (Empty())
        {
            Console.WriteLine("Stack is empty.");
            return "Nothing.";
        }
        else {
            return item[top];
        }
    }
    public void Display() {
        for (int elements = top; elements > 0; elements--) {
            Console.WriteLine("Item " + elements + ": " + item[elements]);
        }
    }
    public void Exit() {
        do {
        } while (Console.ReadKey().Key != ConsoleKey.Escape);
    }
}
class MainProgram {
    static void Main()
    {
        Stack myStack = new Stack();
        int choice;
        while (true) {
            Console.WriteLine("- -- Stack MENU -- -");
            Console.WriteLine("1. Add an element.");
            Console.WriteLine("2. See the Top element.");
            Console.WriteLine("3. Remove top element.");
            Console.WriteLine("4. Display stack elements.");
            Console.WriteLine("5. Exit(ESC).");
            Console.Write("\n\tSelect your choice: ");
            choice = int.Parse(Console.ReadLine());
            switch (choice)
            {
                case 1:
                    myStack.Push(Console.ReadLine());
                    break;
                case 2:
                    myStack.Peek();
                    break;
                case 3:
                    myStack.Pop();
                    break;
                case 4:
                    myStack.Display();
                    break;
                case 5:
                    myStack.Exit();
                    break;
            }
        }
    }
}Потім зробив клас вагону:
class Carriage {
    public int SequenceNumber {
        get; protected set;
    }
    public string CarriageType {
        get; protected set;
    }
    public Carriage(int number, string type) {
        this.SequenceNumber = number;
        this.CarriageType = type;
    }
}
class MainProgram
{
    static void Main()
    {
        Console.Write("Enter the sequence numbers: ");
        int seqNumber = int.Parse(Console.ReadLine());
        Console.Write("Enter the type of train: ");
        string type = Console.ReadLine();
        Carriage myCarriage = new Carriage(seqNumber, type);
    }
}Саме на данному етапі, я не знаю як мені об'єднати вагон з стеком.
Робив так:
class MainProgram
{
    static void Main()
    {
        Stack myStack = new Stack();
        int choice;
        Console.Write("Enter the sequence numbers: ");
        int seqNumber = int.Parse(Console.ReadLine());
        Console.Write("Enter the type of train: ");
        string type = Console.ReadLine();
        Carriage myCarriage = new Carriage(seqNumber, type);
        while (true)
        {
            Console.WriteLine("- -- Stack MENU -- -");
            Console.WriteLine("1. Add an element.");
            Console.WriteLine("2. See the Top element.");
            Console.WriteLine("3. Remove top element.");
            Console.WriteLine("4. Display stack elements.");
            Console.WriteLine("5. Exit(ESC).");
            Console.Write("\n\tSelect your choice: ");
            choice = int.Parse(Console.ReadLine());
            switch (choice)
            {
                case 1:
                    myStack.Push(myCarriage);
                    break;
                case 2:
                    myStack.Peek();
                    break;
                case 3:
                    myStack.Pop();
                    break;
                case 4:
                    myStack.Display();
                    break;
                case 5:
                    myStack.Exit();
                    break;
            }
        }
    }
}Але, на початку консольної програми, мене програма просить вписати параметри вагону. 
Я не знаю як тоді його розмістити, щоб вона викликалась лише коли користувач натиснув 1 - "Add an element."
Буду вдячний за допомогу.
