有没有其他方法可以转换用户在条目中输入的值而无需使用Convert?....(Convert.ToDouble或Convert.ToInt)

时间:2019-12-04 03:41:59

标签: xamarin syncfusion

我正在使用syncfusion数字文本框,因为我希望用户在文本框中输入double值。但是当我使用ConvertToDouble或ToInt(如果它为null)时,它将返回0值。我可以使用任何选项进行转换吗?

//from database
    public double rain1vol { get; set; }
    [MaxLength(3)]
    public double rain2vol { get; set; }

//user entered to database
Post post = new Post()
        {
          rain1vol = Convert.ToDouble(Sfrain1Entry.Value),
          rain2vol = Convert.ToDouble(Sfrain2Entry.Value),

       rain2vol = Sfrain2Entry.Value == null ? null : Convert.ToDouble(Sfrain2Entry.Value); 
//this is the line i've tried but has error
// no implicit conversion between null and int.

            // rain1vol = rain1Entry.Text,
            //rain2vol = rain2Entry.Text

        };

1 个答案:

答案 0 :(得分:0)

您可以使用方法String.IsNullOrEmpty()来检查值,并使用try- catch来实现。

例如,您可以这样做:

       var value = Sfrain1Entry.Text;

        if (!String.IsNullOrWhiteSpace(value))
        {
            double result1;
            try
            {
                result1 = Convert.ToDouble(value);
                System.Diagnostics.Debug.WriteLine("The input is : " + result1);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Exception: " + ex.Message);
            }
        }
        else if (value.Trim().Length == 0)
        {
            System.Diagnostics.Debug.WriteLine("The input is IsWhiteSpace...");
        }
        else {
            System.Diagnostics.Debug.WriteLine("The input is invalid...");
        }

注意:

  1. 您可以使用方法String.IsNullOrWhiteSpace来过滤输入数据。 之后,您可以使用方法value.Trim().Length == 0验证它是否为whitespaces
  2. 您可以根据需要调整代码。