2012-03-16 65 views

答えて

7

私はその人が間違っていると信じています。 From MSDN

拡張プロパティ、フィールド、またはイベントを定義することはできません。

+1

修正。これは決してサポートされませんでした。 –

+1

VB.NETには、メソッドの空のパラメータを省略することができる幸運な機能があります。このメソッドは、拡張メソッドでも機能します。したがって、拡張メソッドを記述して、拡張プロパティのように見えるようにすることができます。 – vcsjones

0

Visual Studio 11のMSDN(draft)documentationによると、拡張プロパティはVS 11(つまり.NET 4.5)では使用できません。

ブロガーなどが可能であると思ういくつかの例が検索されますが、彼のブログの記事ではAyendeを含むと思われますが、それは奇妙です。here

+0

実際にはとても変わっています。拡張プロパティだと思ったら、彼らが何をしているのだろうかと思います。 – Terry

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; 
    } 
} 

それ以外は、答えはノーです。