[英]Implementing indexing in C# property
對於我一直在閱讀的內容,使用另一個類,我可以將索引添加到屬性中。 但是我沒有設法實現我的自定義“Poll”類的“Option[x]”屬性的獲取/設置。
public class Poll
{
//Constructor
public Poll() { }
//Properties
public string Title
{
get { return title; }
set { title = value; }
}
public Options Option { get; set; }
private string title;
}
public class Options
{
string[] option = { };
public string this[int i]
{
get { return option[i]; }
set { option[i] = value; }
}
}
當我嘗試將第一個選項添加到投票中時,它說對象(“選項”)尚未實例化。 它確實有道理。 但是我不知道在 Poll 中我會在哪里實例化它。
那么,誰能解釋一下我做錯了什么? 我是否遵循正確的方向? 或指向我進一步閱讀。 對於我看到的解決方案,這個對我來說似乎是最合乎邏輯的,但只是一個很小的原始示例,細節不足。
我不想遵循字典( 在 C# 中的類上實現索引“運算符” )方式,或者“選項”屬性返回字符串列表。
改變:
public Poll() { }
到:
public Poll() { Option = new Options(); }
還要注意“Wai Ha Lee”指出: “索引器總是會拋出一個IndexOutOfRangeException,因為選項數組總是一個空數組。”
他的意思是你必須更換:
string[] option = { };
和:
string[] option = new string[X]; //X is Array size
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.