Esto es casi posible. Aprendí este buen truco de Daniel Cazzulino.
Devuelve un tipo de un método de extensión que expone las propiedades. Esto es C#, pero debe ser comprensible.
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;
}
}
Aparte de eso, la respuesta es no.
Correcto. Esto nunca fue compatible. –
VB.NET tiene la (no) afortunada funcionalidad de permitirle omitir los parámetros vacíos de un método, que también funciona para los métodos de extensión, por lo que podría escribir un método de extensión y hacerlo * ver * como una propiedad de extensión. – vcsjones