Вместо этого я могу написать это так, чтобы определение было внутри функции?
delegate object ObjFunc(long c); static Object MyFunc(this SqlConnection conn, ObjFunc func) { return func(1); }
Вы не можете. Но вы можете использовать Func<long, object>, уже присутствующий в .NET 3.5.
Func<long, object>