使用连续的TryParse调用是一种猜测字符串'真实类型'的有效方法吗?

Pro*_*ofK 5 .net c#

这涉及到我有没有使用T4生成类的项目模板?题.我有nvarchar生成正确类型的类属性所需的string()参数值列表.

该值是所有原始数据-最复杂的存在DateTime-在集合{ int,double,bool,DateTime}.目前我有一个手工编码的类型属性中的一个 - 这样的列表,并解析我开始的字符串DateTime.TryParseExact.如果失败了,我试试Double.TryParse,在底部我放弃猜测并假设它真的是一个字符串.

这是一个相当合理的方法,还是我应该使用其他更复杂或更准确的方法?

Jar*_*Par 3

如果只是一组值,[double, DateTime, bool]这将是一个详尽但相当合理的方法。这些集合之间存在简单的重叠(true始终是 abool并且5永远不是 a bool)。

两者兼而有之intdouble使得这个命题有点不稳定,因为存在大量重叠。本质上,anyint也可以被视为double. 例如4,如果它出现在值集中,我该如何解释?它可以用两种方式解释,如果值随着时间的推移而变化,您可以看到生成的代码的类型也会发生变化。

考虑一列是否总是巧合地具有整数。因此,您生成了int价值并编写了一些依赖于它们的代码int。然后大约一个月后,添加了一个非整数,突然您就吐出了double值。这可能会对您的代码产生不小的影响。

就我个人而言,我采取的方法是简单地使用另一个表来规定内容的类型。