Это почти возможно . Узнал этот ловкий трюк от Даниэля Каззулино.
Вы возвращаете тип из метода расширения, который предоставляет свойства. Это C #, но должно быть понятно.
public static class ListExtensions
{
// this extension method returns the type with properties
public static ListExtender<T> Extend<T>(this List<T> target)
{
//null check skipped
return new ListExtender<T>(target);
}
}
public sealed class ListExtender<T>
{
private List<T> _target;
// this is a pseudo extension property
public T First { get { return _target[0]; } }
public ListExtender(List<T> target)
{
_target = target;
}
}
Кроме этого, ответ - нет.