用作属性的对象的C#泛型列表 – 无法添加值
发布时间:2020-12-15 06:36:00 所属栏目:百科 来源:网络整理
导读:我第一次尝试仿制药,有问题. 我有一个dll批量发送消息 在该dll中有一个“消息”类和一个“批处理”类 在批次类上,我有一些公共属性 on的批次类的公共属性是一个名为“Messages”的属性,它是“Message”类的列表,如下所示: public ListMessage Messages {get
我第一次尝试仿制药,有问题.
我有一个dll批量发送消息 >在该dll中有一个“消息”类和一个“批处理”类 public List<Message> Messages {get;set;} 方法1 然后我有一个测试exe,我想在“批处理”类中设置属性如下: Batch myBatch = new Batch() myBatch.Messages.Add( new MyNameSpace.Message(txtToAddress.Text,txtMessage.Text)); 当我运行应用程序时,我得到: “你调用的对象是空的.” 方法2 在玩了一下之后,我看到我可以在测试exe中成功地完成以下操作: List<MyNameSpace.Message> myMessages = new List<MyNameSpace.Message>(); myBatch.Messages.Add( new MyNameSpace.Message(txtToAddress.Text,txtMessage.Text)); myBatch.Messages = myMessages; 我想让它的第一种方式工作,因为其他程序员将使用dll,似乎更有意义的使用第一种方法. 我没有想到第一种方法工作? 解决方法
通常,集合由父对象初始化:
public List<Message> Messages {get; private set;} public Batch() { // constructor Messages = new List<Message>(); } 现在它应该按预期工作.请注意,如果您使用XmlSerializer,您还需要保持公共集合 在某些方面,长期的财产代码在这里更容易: private List<Message> messages = new List<Message>(); public List<Message> Messages { get {return messages; } } (不要搞乱构造函数等) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |