我正在使用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
};
答案 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...");
}
注意:
String.IsNullOrWhiteSpace
来过滤输入数据。
之后,您可以使用方法value.Trim().Length == 0
验证它是否为whitespaces
。