【发布时间】:2009-12-07 18:55:59
【问题描述】:
我正在尝试使用 System.ComponentModel.TypeConverter 将一堆 System.Strings 转换为不同的类型。这些字符串可能是也可能不是 TypeConverter 的有效格式,所以我想在尝试类型转换之前找到一种方法来检查它们的有效性(以避免不得不依赖捕获 System.FormatException 来指示字符串格式不正确)。
太好了,这就是 TypeConverters 有一个 IsValid() 方法的原因,对吧?好吧,我遇到了 IsValid() 将返回 true 的问题,但是当我调用 ConvertFromString() 时,它会引发异常。下面是一些重现问题的代码:
System.ComponentModel.DateTimeConverter DateConversion =
new System.ComponentModel.DateTimeConverter();
String TheNumberZero = "0";
if (DateConversion.IsValid(TheNumberZero))
Console.WriteLine(DateConversion.
ConvertFromString(TheNumberZero).ToString());
else
Console.WriteLine("Invalid.");
当我运行它时,这条线
Console.WriteLine(DateConversion.
ConvertFromString(TheNumberZero).ToString());
用消息抛出 System.FromatException
0 is not a valid value for DateTime.
如果在尝试类型转换之前不检查转换输入,IsValid() 方法的目的是什么?有什么方法可以检查字符串的有效性而不必捕获 FormatException?
【问题讨论】:
标签: c# .net types typeconverter