我所做的是在哈希表中查找特定字段的值。该对象可以是少数几种基本类型之一,其值注定要放入XML中,但它作为一个对象从哈希表中出现。因此,我需要决定类型是什么,将其向上转换,然后使用该类型的ToString。如果不需要强制转换,则更好,但这将调用对象类型上的ToString而不是实际类型上的对应方法。
以下代码在功能上是正确的,但我对此感到不舒服。也许按照这条舒适路径会使我成为一个纯粹主义者。无论如何,如果存在更好的编写方式,我非常希望得到它。
以下代码在功能上是正确的,但我对此感到不舒服。也许按照这条舒适路径会使我成为一个纯粹主义者。无论如何,如果存在更好的编写方式,我非常希望得到它。
public string GetColumnValue(string columnName)
{
object value = item[columnName];
if (value == null)
return string.Empty;
if (value.GetType() == typeof(string))
{
return (string)value;
}
else if (value.GetType() == typeof(double))
{
return ((double)value).ToString();
}
...
}
Circle
使用new
而不是override
来修饰其ToString()
方法,否则表达式类型对调用哪个方法没有任何影响。只有对象的运行时类型才有影响。((Shape)aCircleVar).ToString()
和aCircleVar.ToString()
是完全相同的。 - Jeffrey L Whitledge