答案 0 :(得分:7)
我认为这个人不正确。 From MSDN
您无法定义扩展属性,字段或事件。
答案 1 :(得分:1)
几乎可能。从Daniel Cazzulino那里学到了这个巧妙的技巧。
从扩展方法返回一个类型,该方法公开属性。这是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;
}
}
除此之外,答案是否定的。
答案 2 :(得分:0)
根据Visual Studio 11的MSDN(草稿)documentation,扩展属性在VS 11(即.NET 4.5)中也不可用。
虽然搜索确实引发了博客等认为可能的一些情况,包括Ayende在他的博客here上的一篇文章中,但这很奇怪。