//──────────────────────────────────────── static public bool TryParse( object data, out bool isValue_Out, EnumOperationIfErrorvalue enumCellDataErrorSupport, object altValue, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0); log_Method.BeginMethod(Info_Table.Name_Library, "XenonValue_BoolImpl", "TryParse", log_Reports); bool bResult; BoolCellImpl err_BoolCellData; if (data is Boolean) { isValue_Out = (bool)data; bResult = true; } else if (data is BoolCellImpl) { BoolCellImpl boolCellData = (BoolCellImpl)data; if (boolCellData.IsSpaces()) { // 空白の場合 if (EnumOperationIfErrorvalue.Spaces_To_Alt_Value == enumCellDataErrorSupport) { if (altValue is bool) { isValue_Out = (bool)altValue; bResult = true; } else { // エラー isValue_Out = false;//ゴミ値 bResult = false; err_BoolCellData = boolCellData; goto gt_Error_AnotherType; } } else { // エラー isValue_Out = false;//ゴミ値 bResult = false; err_BoolCellData = boolCellData; goto gt_Error_EmptyString; } } else if (!boolCellData.isValidated) { // エラー(変換に失敗した場合) isValue_Out = false;//ゴミ値 bResult = false; err_BoolCellData = boolCellData; goto gt_Error_Invalid; } else { isValue_Out = boolCellData.GetBool(); bResult = true; } } else if (null == data) { // エラー isValue_Out = false;//ゴミ値 bResult = false; goto gt_Error_Null; } else if (!(data is Cell)) { // エラー isValue_Out = false;//ゴミ値 bResult = false; goto gt_Error_AnotherTypeData; } else { // エラー isValue_Out = false;//ゴミ値 bResult = false; goto gt_Error_Class; } // 正常 goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_AnotherType: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー543!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" altValue引数には、bool型の値を指定してください。"); s.Append(Environment.NewLine); s.Append(" boolセル値=["); s.Append(err_BoolCellData.Text); s.Append("]"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" 問題箇所ヒント:"); err_BoolCellData.ToText_Locationbreadcrumbs(s); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_EmptyString: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー531!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" セルに、bool型の値を入れてください。空欄にしないでください。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" boolセル値=["); s.Append(err_BoolCellData.Text); s.Append("]"); // // ヒント err_BoolCellData.ToText_Locationbreadcrumbs(s); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Invalid: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー112!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" bool型に変換できませんでした。["); s.Append(err_BoolCellData.Text); s.Append("]"); // // ヒント err_BoolCellData.ToText_Locationbreadcrumbs(s); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Null: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー231!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" 指定の引数dataに、BoolCellData型の値を指定してください。空っぽでした。"); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_AnotherTypeData: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー332!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" bool型のデータを入れるところで、"); s.Append(Environment.NewLine); s.Append(" 別の型[" + data.GetType().Name + "]でした。"); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Class: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー233!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append("指定の引数の値["); s.Append(((Cell)data).Text); s.Append("]は、BoolCellData型ではありませんでした。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" 型=["); s.Append(data.GetType().Name); s.Append("]"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // // gt_EndMethod: log_Method.EndMethod(log_Reports); return(bResult); }
//──────────────────────────────────────── //static public string ParseString(object data) //{ // if (data is Int_HumaninputImpl) // { // return ((Int_HumaninputImpl)data).Text; // } // // // // 以下、エラー対応。 // // // // DBNull でここをよく通る。 // // // // // //if (false) // //{ // // Log_TextIndented t = new Log_TextIndentedImpl(); // // if (data is DBNull) // // { // // t.Append("int型の値が必要なところでしたが、値が存在しませんでした。(DBNull)"); // // t.Append(Environment.NewLine); // // } // // else // // { // // t.Append("指定の引数の値["); // // t.Append(((O_Value)data).SHumanInput); // // t.Append("]は、int型ではありませんでした。"); // // t.Append(Environment.NewLine); // // } // // //.WriteLine("OValue_IntImpl.GetString: エラーメッセージ=" + dt.ToString()); // // throw new System.ArgumentException(t.ToString()); // //} // // // // // // // // // return ""; //} //──────────────────────────────────────── /// <summary> /// /// </summary> /// <param name="data"></param> /// <param name="outInt"></param> /// <returns>正常終了なら真、異常終了なら偽。</returns> static public bool TryParse( object data, out int nValue_Out, EnumOperationIfErrorvalue enumCellDataErrorSupport, object altValue, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0); log_Method.BeginMethod(Info_Table.Name_Library, "OValue_IntImpl", "TryParse", log_Reports); bool bResult; Int_HumaninputImpl err_IntCellData; if (data is Int_HumaninputImpl) { Int_HumaninputImpl intCellData = (Int_HumaninputImpl)data; if (intCellData.IsSpaces()) { // // 空白の場合 // if (EnumOperationIfErrorvalue.Spaces_To_Alt_Value == enumCellDataErrorSupport) { if (altValue is int) { nValue_Out = (int)altValue; bResult = true; } else { // エラー nValue_Out = 0;//ゴミ値 bResult = false; err_IntCellData = intCellData; goto gt_Error_AnotherType2; } } else { // エラー nValue_Out = 0;//ゴミ値 bResult = false; err_IntCellData = intCellData; goto gt_Error_EmptyString; } } else if (!intCellData.isValidated) { // エラー(変換に失敗した場合) nValue_Out = 0;//ゴミ値 bResult = false; err_IntCellData = intCellData; goto gt_Error_Invalid; } else { // 正常処理 nValue_Out = intCellData.nValue_Int; bResult = true; } } else if (null == data) { // エラー nValue_Out = 0;//ゴミ値 bResult = false; goto gt_Error_Null; } else if (!(data is Value_Humaninput)) { // エラー nValue_Out = 0;//ゴミ値 bResult = false; goto gt_Error_AnotherType; } else { // エラー nValue_Out = 0;//ゴミ値 bResult = false; goto gt_Error_Class; } // 正常 goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_AnotherType2: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー201!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" altValue引数には、int型の値を指定してください。"); s.Append(Environment.NewLine); s.Append(" intセル値=["); s.Append(err_IntCellData.Text); s.Append("]"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" 問題箇所ヒント:"); s.Append(Environment.NewLine); s.Append(" "); err_IntCellData.ToText_Locationbreadcrumbs(s); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_EmptyString: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー201!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" セルに、int型の値を入れてください。空欄にしないでください。"); s.Append(Environment.NewLine); s.Append(" intセル値=["); s.Append(err_IntCellData.Text); s.Append("]"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" 問題箇所ヒント:"); s.Append(Environment.NewLine); s.Append(" "); err_IntCellData.ToText_Locationbreadcrumbs(s); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Invalid: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー111!!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" int型に変換できませんでした。["); s.Append(err_IntCellData.Text); s.Append("]"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" 問題箇所ヒント:"); s.Append(Environment.NewLine); s.Append(" "); err_IntCellData.ToText_Locationbreadcrumbs(s); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Null: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー110!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" 指定の引数dataに、IntCellData型の値を指定してください。空っぽでした。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_AnotherType: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー111!", log_Method); Log_TextIndentedImpl s = new Log_TextIndentedImpl(); s.Append(" 指定の引数dataに、CellData型の値を指定してください。"); s.Append(Environment.NewLine); s.Append(" 別の型[" + data.GetType().Name + "でした。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Class: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー112!", log_Method); Log_TextIndentedImpl s = new Log_TextIndentedImpl(); s.Append(" 指定の引数の値["); s.Append(((Value_Humaninput)data).Text); s.Append("]は、IntCellData型ではありませんでした。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // // gt_EndMethod: log_Method.EndMethod(log_Reports); return(bResult); }
//──────────────────────────────────────── public static bool TryParse( object data, out bool bValue_Out, EnumOperationIfErrorvalue enumCellDataErrorSupport, object altValue, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0); log_Method.BeginMethod(Info_Table.Name_Library, "XenonValue_BoolImpl", "TryParse", log_Reports); bool bResult; Bool_HumaninputImpl err_BoolCellData; if (data is Boolean) { bValue_Out = (bool)data; bResult = true; } else if (data is Bool_HumaninputImpl) { Bool_HumaninputImpl boolCellData = (Bool_HumaninputImpl)data; if (boolCellData.IsSpaces()) { // 空白の場合 if (EnumOperationIfErrorvalue.Spaces_To_Alt_Value == enumCellDataErrorSupport) { if (altValue is bool) { bValue_Out = (bool)altValue; bResult = true; } else { // エラー bValue_Out = false;//ゴミ値 bResult = false; err_BoolCellData = boolCellData; goto gt_Error_AnotherType; } } else { // エラー bValue_Out = false;//ゴミ値 bResult = false; err_BoolCellData = boolCellData; goto gt_Error_EmptyString; } } else if (!boolCellData.isValidated) { // エラー(変換に失敗した場合) bValue_Out = false;//ゴミ値 bResult = false; err_BoolCellData = boolCellData; goto gt_Error_Invalid; } else { bValue_Out = boolCellData.GetBool(); bResult = true; } } else if (null == data) { // エラー bValue_Out = false;//ゴミ値 bResult = false; goto gt_Error_Null; } else if (!(data is Value_Humaninput)) { // エラー bValue_Out = false;//ゴミ値 bResult = false; goto gt_Error_AnotherTypeData; } else { // エラー bValue_Out = false;//ゴミ値 bResult = false; goto gt_Error_Class; } // 正常 goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_AnotherType: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー543!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" altValue引数には、bool型の値を指定してください。"); s.Append(Environment.NewLine); s.Append(" boolセル値=["); s.Append(err_BoolCellData.Text); s.Append("]"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" 問題箇所ヒント:"); err_BoolCellData.ToText_Locationbreadcrumbs(s); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_EmptyString: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー531!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" セルに、bool型の値を入れてください。空欄にしないでください。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" boolセル値=["); s.Append(err_BoolCellData.Text); s.Append("]"); // // ヒント err_BoolCellData.ToText_Locationbreadcrumbs(s); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Invalid: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー112!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" bool型に変換できませんでした。["); s.Append(err_BoolCellData.Text); s.Append("]"); // // ヒント err_BoolCellData.ToText_Locationbreadcrumbs(s); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Null: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー231!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" 指定の引数dataに、BoolCellData型の値を指定してください。空っぽでした。"); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_AnotherTypeData: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー332!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append(" bool型のデータを入れるところで、"); s.Append(Environment.NewLine); s.Append(" 別の型[" + data.GetType().Name + "]でした。"); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_Class: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー233!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append("指定の引数の値["); s.Append(((Value_Humaninput)data).Text); s.Append("]は、BoolCellData型ではありませんでした。"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); s.Append(" 型=["); s.Append(data.GetType().Name); s.Append("]"); s.Append(Environment.NewLine); s.Append(Environment.NewLine); r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // // gt_EndMethod: log_Method.EndMethod(log_Reports); return bResult; }