几个函数的通用替换

问题描述

| 我正在解析大量的xml内容,并填充一个DTO以提交给合作伙伴端点。 xml内容存储在我定期读取并发送的文本文件中。无论如何,我现在发现自己喜欢Funcs,就像这样:
Func<string,int> ConvertInt= (p) => String.IsNullOrEmpty(p) ? 0 : Convert.ToInt32(p);
我检查我正在读取的元素是否不包含值,并且是否不发送默认值,即在整数情况下为0。我对于double和DateTime?有相似的值是无论如何有转换它,所以我可以说一个扩展方法可以处理所有类型,即int,double和DateTimes?同样,我执行此转换的原因是,让我们说DTO期望但不是必需的某个整数值,我不想尝试将空字符串强制转换为它,依此类推。 。如果没有Date值,我只想返回一个空值,因为DTO接受可为空的日期时间,因此我编写了函数,并希望进行合并。     

解决方法

您应该看看TypeConverter类:http://msdn.microsoft.com/zh-cn/library/system.componentmodel.typeconverter.aspx
protected X Convert<X>(string value)
{
    X val = default(X);

    var tc = TypeDescriptor.GetConverter(typeof(X));

    if (!string.IsNullOrEmpty(value) && tc.CanConvertFrom(typeof(string)))
    {
        val = (X)tc.ConvertFromString(value);
    }

    return val;
}
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...