Мне интересно, следует ли мне создавать методы расширения, которые применяются на уровне объекта, или они должны располагаться в более низкой точке иерархии классов. Я имею в виду что-то вроде:
public static string SafeToString(this Object o) {
if (o == null || o is System.DBNull)
return "";
else {
if (o is string)
return (string)o;
else
return "";
}
}
public static int SafeToInt(this Object o) {
if (o == null || o is System.DBNull)
return 0;
else {
if (o.IsNumeric())
return Convert.ToInt32(o);
else
return 0;
}
}
//same for double.. etc
Я написал эти методы, так как мне приходится много работать с данными базы данных (из OleDbDataReader), которые могут иметь значение null (хотя и не должно), поскольку базовая база данных, к сожалению, очень либеральна со столбцами, которые могут быть нулевой. И чтобы облегчить себе жизнь, я придумал эти методы расширения.
Я хотел бы знать, хороший ли это стиль, приемлемый стиль или плохой стиль. Меня это беспокоит, так как это как бы «загрязняет» объектный класс.
Заранее спасибо и С наилучшими пожеланиями :)
Христианин
P.S. Я специально не пометил это как «субъективное».