コード例 #1
0
ファイル: Utils.cs プロジェクト: GalRabin/csharp-course
        internal static object GetPropertyFromUser(string i_Key, Type i_ArgumentType, GarageLogic.Garage i_Garage,
                                                   Type i_TargetType)
        {
            object value;

            PropertyPrompt(i_Key, i_ArgumentType);

            if (i_ArgumentType == typeof(int))
            {
                value = getValidIntegerFromUser();
            }
            else if (i_ArgumentType == typeof(float))
            {
                value = GetValidFloatFromUser();
            }
            else if (i_ArgumentType == typeof(string))
            {
                value = Console.ReadLine();
            }
            else if (i_ArgumentType == typeof(bool))
            {
                value = getValidYesNoFromUser();
            }
            else if (i_ArgumentType.IsEnum)
            {
                value = GetValidEnumFromUser(i_ArgumentType);
            }
            else if (i_ArgumentType.IsClass)
            {
                while (true)
                {
                    object[] objectParameters = GetValidObjectParametersFromUser(i_ArgumentType);
                    try
                    {
                        value = i_Garage.CreateGarageObject(objectParameters, i_ArgumentType, i_TargetType);
                        break;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
            }
            else
            {
                value = null;
            }

            return(value);
        }