语言 C# 我现在要画面取得的值进行转换:画面 textbox转换成 Decimal 类型
Convert.ToDecimal(this.textbox1.Text.Trim())但是有个问题,我没有输入时候,转化报错,注:我不想一个一个的判断是否为空,画面的控件很多!!!

解决方案 »

  1.   

    foreach(Control c in this.Controls)
    {
       if(c is TextBox)
          {
               TextBox tb=c as TextBox;
               if(!string.IsNullOrEmpty(tb.Text)
               {
                    //do some thing
                  }
           }
    }
      

  2.   

    转换报错 是因为 “”是空值,但是又没法转换成Decimal 类型如果你要确实要转换的话可以用Decimal.TryParse(this.textbox1.Text.Trim(),out decTxb)
      

  3.   


    public static class ExtendConvert
        {
            public static decimal MyConvert(this Convert c, string str)
            {
                if (str.Trim() == string.Empty)
                {
                    return decimal.Zero;
                }
                return Convert.ToDecimal(str);
            }
        }用扩展方法吧,使用的时候直接调ExtendConvert.MyConvert而不再使用Convert.ToDecimal
      

  4.   

    上面写错了哈,convert是静态类,不用扩展方法,直接调用ExtendConvert.MyConvert就行了
      

  5.   

    可以写一个 公用类型转换方法,
         public string isNull(string value)
        {
            if (!string.IsNullOrEmpty(value.Trim()))
            {
                return value.Trim();
            }
            else
            {
                return "";
            }
        }
        public string isNull(decimal? value)
        {
            if (value != null)
            {
                return value.ToString();
            }
            else
            {
                return "";
            }
        }