具有指向同一对象的多个对象的属性

本文关键字:对象 属性 | 更新日期: 2023-09-27 18:34:41

我正在开发.NET (C#(中的日历应用程序。

通常,用户从复选框列表中检查姓名,然后他可以在日历上查看其中每个人的所有事件。

例如,我有CalendarWeek对象,CalendarEvent对象和CalendarTableCell对象。

我需要所有这些列表作为属性,但它必须是所有列表中的相同列表。

我想我应该为此使用指针,我并不真正理解我找到的指南,所以我需要一些帮助。

具有指向同一对象的多个对象的属性

我需要所有这些列表作为属性,但它必须是所有列表中的相同列表。

如果你需要多个对象来使用同一个列表,绝对没有问题:创建一个列表对象,并将其传递给需要使用它的类的构造函数。与 C# 中的所有类(与 struct 和基元相反(一样,List<T> 和其他集合是按引用的对象。在您的情况下,这意味着如果您将List<T>分配给不同对象中的实例字段,则这些字段将引用相同的列表。

class CalendarEvent {
    public List<Stuff> ListOfStuff {get;private set;}
    public CalendarEvent(List<Stuff> myList) {
        ListOfStuff = myList;
    }
}
class CalendarWeek {
    public List<Stuff> ListOfStuff {get;private set;}
    public CalendarWeek(List<Stuff> myList) {
        ListOfStuff = myList;
    }
}
...
// Create a list
List<Stuff> theList = new List<Stuff>();
// Add things to it
theList.Add(...);
// Make CalendarEvent and CalendarWeek
var ce = new CalendarEvent(theList);
var cw = new CalendarWeek(theList);
// At this point ce.ListOfStuff and cw.ListOfStuff have the same list