редактировать
Тестовые коды здесь, если кому-то интересно: http://gist.github.com/raw/305787/dc5349d9f6fa37ee5d621b43ec92dade60fe1c8d/ToStringTests.cs
Ниже вы найдете мой оригинальный ответ. Кто-то указал, что у вас может быть тип, у которого нет ToString (), который вам нравится (потому что он использует Object или что-то более высокое в цепочке). Лучший способ справиться с этим в 3.0+ - использовать метод расширения, подобный этому:
public static class ToStringExpander
{
public static string MyToString (this Object x)
{
return x.ToString();
}
public static string MyToString (this mytype x)
{
return "This is the to string of mytype!";
}
}
Теперь mytype будет работать с приведенным ниже GetColumnValue, если вы измените ToString () на MyToString ()
оригинальный пост
Это будет делать то, что вы хотите.
public string GetColumnValue(string columnName)
{
object value = item[columnName];
if (value == null)
return string.Empty;
return object.ToString();
}
или если вы хотите посмотреть старую школу:
public string GetColumnValue(string columnName)
{
return (item[columnName] == null ? string.Empty : item[columnName].ToString());
}
конечно, настоящей старой школой было бы создание #define макроса ...