获取 属性 带格式的 ToString
Get property ToString with formatting
使用反射我可以在 属性 上做 ToString
。但是有没有办法在执行此操作时提供格式?
public static object GetCustomValue(object src, string propName)
{
return src.GetType().GetMethod(propName).GetValue(src, null);
}
像这样调用函数工作正常
GetCustomValue(obj, "ToString")
但我想用
来称呼它
GetCustomValue(obj, "ToString(\"MMM\")")
在我的函数中调用 GetMethod
时是否可以向 ToString 添加格式?
是的,你可以在方法名之外使用.ToString(format);
GetPropertyValue(obj, "ToString").ToString(format);
如果您的 ToString 接受参数(默认情况下不接受),请添加一个额外的可选参数:
public static Object GetCustomValue (object Target, string MethodName, String Format = null)
{
// Gets the ToString method that accepts a string as the parameter and invoke it.
return Target.GetType ()
.GetMethod (MethodName, new [] {typeof (String)})
.Invoke (Target, new Object[] {Format});
}
这样称呼:
GetCustomValue (obj, "ToString", "MMM");
使用反射我可以在 属性 上做 ToString
。但是有没有办法在执行此操作时提供格式?
public static object GetCustomValue(object src, string propName)
{
return src.GetType().GetMethod(propName).GetValue(src, null);
}
像这样调用函数工作正常
GetCustomValue(obj, "ToString")
但我想用
来称呼它GetCustomValue(obj, "ToString(\"MMM\")")
在我的函数中调用 GetMethod
时是否可以向 ToString 添加格式?
是的,你可以在方法名之外使用.ToString(format);
GetPropertyValue(obj, "ToString").ToString(format);
如果您的 ToString 接受参数(默认情况下不接受),请添加一个额外的可选参数:
public static Object GetCustomValue (object Target, string MethodName, String Format = null)
{
// Gets the ToString method that accepts a string as the parameter and invoke it.
return Target.GetType ()
.GetMethod (MethodName, new [] {typeof (String)})
.Invoke (Target, new Object[] {Format});
}
这样称呼:
GetCustomValue (obj, "ToString", "MMM");