亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# 重寫 List<T> 添加方法來檢查列表是否為空

C# 重寫 List<T> 添加方法來檢查列表是否為空

C#
白板的微信 2023-08-20 14:39:27
我想弄清楚這是否可行/正確的語法使其工作。我想null在屬性級別添加新項目時對我的列表進行檢查,而不是null每次向列表添加項目時都進行檢查。例如:MyClass someClass = new MyClass(){    MyClassID = 1,    Notes = null};////Note newNote = new Note(){    NoteID = 1,    Text = "Test note"};someClass.Notes.Add(newNote); // This line will throw an error because                               //      someClass.Notes is null我想通過執行以下代碼來解決這個問題。但是,我不知道是否/什么語法可以實現這一點。public class MyClass{    public int MyClassID { get; set; }    public List<Note> Notes    {        get; set;        public void Add(Note note)        {            if (this.Notes == null)                this.Notes = new List<Note>();            this.Notes.Add(note);        }    }}public class Note{    public int NoteID { get; set; }    public string Text { get; set; }}** 我知道我可以在執行之前進行空檢查someClass.Notes == null并將其分配給,但我想在屬性級別執行此操作,這樣我就不必每次需要添加時都復制這兩行代碼新筆記。new List<Note>().Add(newNote)
查看完整描述

2 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

最好在構造函數中初始化列表MyClass


public class MyClass

{

    public MyClass()

    {

        Notes = new List<Note>();

    }

}


查看完整回答
反對 回復 2023-08-20
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

讓我們介紹一下支持字段 private List<Note> m_Notes:


public class MyClass

{

    public int MyClassID { get; set; } 


    // Empty list by default

    private List<Note> m_Notes = new List<Note>();


    public List<Note> Notes

    {

        get

        {

            return m_Notes; 

        }

        set // If you really want "set" in the context

        {

            // Assign empty list if value is null

            m_Notes = value ?? new List<Note>();

        }   

    }

}


查看完整回答
反對 回復 2023-08-20
  • 2 回答
  • 0 關注
  • 170 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號