私はthis postを見て、これがVBで可能かどうかを知りたいと思います。拡張メソッドの代わりにVB拡張プロパティ
拡張メソッドと同様に、拡張プロパティはVB.Netに存在しますか?
Here私はそれらを読んだことがありますが、例は見つかりません。
私はthis postを見て、これがVBで可能かどうかを知りたいと思います。拡張メソッドの代わりにVB拡張プロパティ
拡張メソッドと同様に、拡張プロパティはVB.Netに存在しますか?
Here私はそれらを読んだことがありますが、例は見つかりません。
私はその人が間違っていると信じています。 From MSDN
拡張プロパティ、フィールド、またはイベントを定義することはできません。
Visual Studio 11のMSDN(draft)documentationによると、拡張プロパティはVS 11(つまり.NET 4.5)では使用できません。
ブロガーなどが可能であると思ういくつかの例が検索されますが、彼のブログの記事ではAyendeを含むと思われますが、それは奇妙です。here
実際にはとても変わっています。拡張プロパティだと思ったら、彼らが何をしているのだろうかと思います。 – Terry
これは、ほぼのです。 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;
}
}
それ以外は、答えはノーです。
修正。これは決してサポートされませんでした。 –
VB.NETには、メソッドの空のパラメータを省略することができる幸運な機能があります。このメソッドは、拡張メソッドでも機能します。したがって、拡張メソッドを記述して、拡張プロパティのように見えるようにすることができます。 – vcsjones