Метод расширение для безопасного приведения типов
В добавление к записи Дмитрия Нестерука – Паттерны методов расширения хотел бы добавить еще один метод расширение “Приведение типов”, без которого мне уже сложно обходиться. Автор идеи этого подхода работает сейчас в фирме, где я работал раньше. Нам часто приходится писать, примерно, такой код: int intValue; if (obj == null || !int.TryParse(obj.ToString(), out intValue)) intValue = 0; Это способ безопасного приведения к типу int. Напрашивается сразу же какой либо унифицированный метод для безопасного приведения типов. Мне нравится подход вынесения преобразования в extension method и использовать его затем следующим образом: int i; i = "1".To<int>(); // i == 1 i = "1a".To<int>(); // i == 0 (default value of int) i = "1a".To(10); // i == 10 (set as default value 10) i = "1".To(10); // i == 1 // ********** Nullable sample ************** int? j; j = "1".To<int?>(); // j == 1 j = "1a".To<int?>(); // j == null j = "1a".To<int?>(10); // j == 10 j = "1".To<int?>(10); // j == 1 Читать дальше… (redirect to http://outcoldman.ru)
Recent Comments