C# 简化检查它是什么类型并使用反射格式化字符串?
有没有办法简化if(值为X)然后自定义ToString() 我想买本字典C# 简化检查它是什么类型并使用反射格式化字符串?,c#,generics,reflection,C#,Generics,Reflection,有没有办法简化if(值为X)然后自定义ToString() 我想买本字典 typeOf(DateTime), "mm/DD/yyyy" typeOf(float), "de-De" 并且有一个looup,但我无法将值转换为类型。您可以使用并利用动态类型: public class ValueFormatter { public string Format(object value) { return Format(value as dy
typeOf(DateTime), "mm/DD/yyyy"
typeOf(float), "de-De"
并且有一个looup,但我无法将值转换为类型。您可以使用并利用动态
类型:
public class ValueFormatter
{
public string Format(object value)
{
return Format(value as dynamic);
}
private string Format(DateTime date)
{
return date.ToString("MM/dd/yyyy");
}
private string Format(float floatData)
{
return floatData.ToString(CultureInfo.CreateSpecificCulture("de-DE"));
}
// ...
}
您现在可以重写代码:
var formatter = new ValueFormatter();
var value = FindBodyLine(iwant, props, obj);
sb.Append(formatter.Format(value));
您的问题实际上是关于“我不能将值转换为类型”的吗?这是什么意思?为什么不使用value.GetType()?
var formatter = new ValueFormatter();
var value = FindBodyLine(iwant, props, obj);
sb.Append(formatter.Format(value));