title: error : An Object reference is required for non-static field, methods, or property. (in C#)
body: <p>i made a garagemanager program which contain vehicle class and classes which heritage from this class.
  while in the UI manager call to a methods which ask the user for details so i can construct a new vehicle object. that method give me the error :</p>
  
  <blockquote>
    <p>An Object reference is required for non-static field, methods, or
    property.</p>
  </blockquote>
  
  <p>the method i call is :</p>
  
  <pre><code> //takeing a vehicle license number and creating a new vehicleStatusInfo.
      public VehicleStatusInfo GetNewVehicleStatusInfo(string i_LicenseNumber)
      {
          eVehicleType vehicleType = GetVehicleType();
          string vehicleOwnerName = GetVehicleOwnerName();
          string vehicleOwnerPhone = GetVehicleOwnerPhone();
          string modelName = GetVehicleModleName();
          eEnergyType energyType = getEnergyInput();
          float maxEnergy = ChooseNumOf("max energy of the vehicle (float)");
          float energyLeft = ChooseNumOf("energy Left in the vehicle (float)", 0, maxEnergy);
          List&lt;Wheel&gt; wheelList = GetWheelList();
          Vehicle newVehicle;
          switch (vehicleType)
          {
              case eVehicleType.MotoricCar:
                  eColor motorCarcolor = GetColor();
                  int motorCarNumOfDoors = GetNumOfDoors();
                  newVehicle = new Car(modelName, i_LicenseNumber, energyLeft, wheelList, energyType, maxEnergy, motorCarcolor, motorCarNumOfDoors);
                  break;
              case eVehicleType.ElectricCar:
                  eColor elctCarColor = GetColor();
                  int elctCarNumOfDoors = GetNumOfDoors();
                  newVehicle = new Car(modelName, i_LicenseNumber, energyLeft, wheelList, energyType, maxEnergy, elctCarColor, elctCarNumOfDoors);
                  break;
              case eVehicleType.MotoricBike:
                  eLisenceSize licenseSize = GetLicenseSize();
                  int engineCapacity = GetEngineCapacity();
                  newVehicle = new Motorcycle(modelName, i_LicenseNumber, energyLeft, wheelList, energyType, maxEnergy, licenseSize, engineCapacity);
                  break;
              case eVehicleType.ElecticBike:
                  eLisenceSize elctLicenseSize = GetLicenseSize();
                  int elctEngineCapacity = GetEngineCapacity();
                  newVehicle = new Motorcycle(modelName, i_LicenseNumber, energyLeft, wheelList, energyType, maxEnergy, elctLicenseSize, elctEngineCapacity);
                  break;
              case eVehicleType.Truck:
                  bool hasDangerouseMaterial = IsDangerouse();
                  float maxWeight = ChooseNumOf("max weight of the truck");
                  newVehicle = new Truck(modelName, i_LicenseNumber, energyLeft, wheelList, energyType, maxEnergy,hasDangerouseMaterial, maxWeight);
                  break;
              default:
                  newVehicle = new Vehicle(modelName, i_LicenseNumber, energyLeft, wheelList, energyType, maxEnergy);
                  break;
          }
  </code></pre>
  
  <p>and here is how i call the method :</p>
  
  <pre><code>newGarageManager.VehicleList.Add(GetNewVehicleStatusInfo(VehicleLicenseNum))
  </code></pre>
  
  <p>i can't make the method static since she use other get-from-user-methods.</p>