gpt4 book ai didi

c# - "x.Groups = list"有效但 "x.Groups.Add(listItem)"抛出空引用异常?

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:21 25 4
gpt4 key购买 nike

我有一个名为 Permissions 的类,它有几个子类(和一些属性),GroupGroup.Permission

现在,我可以执行以下操作

Permissions u = new Permissions();
u.userId = (Guid)user.ProviderUserKey;
List<int> groups = getGroupsForUserId(u.userId.ToString());

List<Permissions.Group> groupItems = new List<Permissions.Group>();

foreach (int g in groups)
{
Permissions.Group groupItem = new Permissions.Group();
groupItem.group_id = g;
groupItem.Records = getRecordsForGroupId(g);
groupItem.Permissions = getPermissionsForGroupId(g);

groupItems.Add(groupItem);
}
u.Groups = groupItems;

但是,我不能这样做:

Permissions u = new Permissions();
u.userId = (Guid)user.ProviderUserKey;
List<int> groups = getGroupsForUserId(u.userId.ToString());

foreach (int g in groups)
{
Permissions.Group groupItem = new Permissions.Group();
groupItem.group_id = g;
groupItem.Records = getRecordsForGroupId(g);
groupItem.Permissions = getPermissionsForGroupId(g);

u.Groups.Add(groupItem);
}

我的问题是,为什么?

我创建了一个新的 Permissions.Group 对象,添加了值,然后将其添加到 u 对象的 Groups 列表中。在我看来这应该行得通,但是我假设我没有在类里面连接一些东西?我的类只是一个属性列表 property_name { get;放; 所以真的没有什么异国情调的东西。

尝试后者,我在 u.Groups.Add(groupItem);

行得到一个 NullReferenceException

最佳答案

您可能需要在Permissions 构造函数中初始化Permissions.Groups:

public class Permissions
{
public Permissions()
{
Groups = new List<Group>();
}

public ICollection<Group> Groups { get; set; }
}

关于c# - "x.Groups = list"有效但 "x.Groups.Add(listItem)"抛出空引用异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com