- 題名: 引数があるプロパティの取得
- 日時: 2008/07/22 11:58:43
- ID: 22478
- この記事の返信元:
- (なし)
- この記事への返信:
- [22479] Re[1]: 引数があるプロパティの取得2008/07/22 12:16:29
- [22480] Re[1]: 引数があるプロパティの取得2008/07/22 12:26:02
- [22482] Re[1]: 引数があるプロパティの取得2008/07/22 13:53:49
- ツリーを表示
■No22478に返信(shimさんの記事) > Public Property Data(ByVal B As Integer) As String > をC#で実現するにはどのようなコードを書けばよろしいでしょうか? 私がよくやるのは,中間的なコレクションクラスを用意する方法です。 そいつがインデクサを持つことによって,名前付きプロパティを擬似的に実装することができます。 これをやると,そもそもデータをどちらが持つのか,という問題が出てきたりはしますが……。 public class Foo { private string[] _data; public class StringCollection // 中間コレクション。IEnumerableなどは好みによって。 { private readonly Foo _foo; // コレクションの持ち主 internal StringCollection (Foo foo) { _foo = foo; } public int Count { get { return _foo._data.Length; } } public string this [int index] { get { return _foo._data[index]; } } } public StringCollection Data { get { return new StringCollection(this); // 毎回作るのはコストがかかるので,別に用意したいところ。 } } }
分類:[.NET]
[VB.NETコード]
Private A() As String
Public Property Data(ByVal B As Integer) As String
Get
Return A(B)
End Get
End Property
をC#で実現するにはどのようなコードを書けばよろしいでしょうか?