0
構造体配列を作成しようとしています。私は今、MyArrayというのIListは、任意のメソッドやプロパティを公開されていないとして、私のコードでこのクラスを使用する方法がわからないよ構造体配列を利用する
public class JonSkeetClass
{
public struct ReportDetails
{
private readonly int indexd;
private readonly string name;
public ReportDetails(int indexd, string name)
{
this.indexd = indexd;
this.name = name;
}
public int Indexd { get { return indexd; } }
public string Name { get { return name; } }
}
static readonly IList<ReportDetails> MyArray = new ReadOnlyCollection<ReportDetails>
(
new[]
{
new ReportDetails(0, "Daily Unload Counts by Group"),
new ReportDetails(1,"Daily Unloads")
});
public statis IList<ReportDetails> GetMyArray
{
get{ return MyArray; }
}
}
を:私は、以下の例を作成するには、このSO postで見つかった@JonSkeetによって提供された例を使用していました。
Update1:上記のコードサンプルが@Adrianの提案で更新されました。あなたはクラスの外MyArrayというフィールドにアクセスすることはできませんパブリックメソッド
/*public*/ class JonSkeetClass /*the visibility of this class depends on where you'll be using it*/
{
public struct ReportDetails /*this needs to be public also (or internal)*/
{
....
}
public static IList<ReportDetails> GetMyArray
{
get
{
return MyArray;
}
}
}
編集
を経由してあなたがそれを公開する必要が
IList<JonSkeetClass.ReportDetails> MyArray = JonSkeetClass.GetMyArray;
MessageBox.Show(MyArray[0].Name.ToString());
ありがとう。これにより、プログラム内でクラスが可視になりますが、どのようにして値を呼び出すことができますか?私はそれがMyArray [0] .Nameと思っていました。 –
@ JohnM、私の更新を参照してください –
ありがとうございます - 私は私の例を更新しました。 –