簡體   English   中英

在 C# 屬性中實現索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM