Задать вопрос
@OwDafuq

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

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


Но хотелось бы, чтобы он появлялся на типах на подобии String, Int, Double и т.п., как такое сделать?
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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
Вы базовый объект расширяете, никак не сделать. Только создав разные методы для нужных объектов
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы