Что, если T кошка, как вы собираетесь преобразовать число 5 в кошку?Это не имеет никакого смысла
Что-то, что немного легче обдумать, может быть:
static void Main()
{
Bar(5, x => Foo(x));
Bar("Bob", x => Foo(x));
}
static void Foo<T>(T x)
{
Console.WriteLine(x);
}
static void Bar<T>(T somethingTangible, Action<T> fun)
{
fun(somethingTangible);
}
Ouput
5
Bob