@OwDafuq

Как ограничить расширение?

Доброе утро.
Есть расширение для всех типов данных
public static Int32 ToInt32(this Object line)
{
	return Convert.ToInt32(line);
}


Но хотелось бы, чтобы он появлялся на типах на подобии String, Int, Double и т.п., как такое сделать?
  • Вопрос задан
  • 162 просмотра
Пригласить эксперта
Ответы на вопрос 2
lexxpavlov
@lexxpavlov
Программист, преподаватель
Это сделать не получится, к сожалению.
Предлагаю сделать несколько подобных методов в одном классе, по одного для каждого требуемого типа:
public class NumericExtensions
{
  public static Int32 ToInt32(this Double line)
  {
    return (Int32)line;
  }
  public static Int32 ToInt32(this float line)
  {
    return (Int32)line;
  }
  public static Int32 ToInt32(this String line)
  {
    var res;
    int.TryParse(line, out res);
    return res;
  }
  // ... для каждого нужного типа
}
Ответ написан
@Sing303
Вы базовый объект расширяете, никак не сделать. Только создав разные методы для нужных объектов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы