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

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

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


Но хотелось бы, чтобы он появлялся на типах на подобии String, Int, Double и т.п., как такое сделать?
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Merion Academy
    C# разработчик с нуля
    4 месяца
    Далее
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • Skillfactory
    Профессия C#-разработчик
    12 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
Вы базовый объект расширяете, никак не сделать. Только создав разные методы для нужных объектов
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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