Я читал, что обычно сложно использовать System.Object, с которым я согласен.
Мне любопытно, однако, если следующее будет считаться полезным методом расширения, или это все еще плохая практика?
Он похож на расширение System.Object, но не точно,
public static R InvokeFunc<T, R>(this T input, Func<T, R> func)
{
return func.Invoke(input);
}
Это по существу позволяет любому объекту вызывать любую функцию, которая принимает этот объект в качестве параметра и возвращает R, принадлежит ли эта функция к объекту или нет. Я думаю, что это могло бы облегчить интересную "инверсию контроля", но не уверен в этом.
Мысли?