gpt4 book ai didi

c# - 使用 EqualityComparer 初始化静态字典

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

我需要使用 EqualityComparer 初始化静态 dictionary,因为我使用自定义类作为此 dictionary 中的键。当这个 dictionary 不是静态的时,我可以初始化它,但是当它被标记为静态时,它就不起作用了,我在初始化过程中遇到异常:“在调用之前检查对象是否为 null方法”。我的代码如下所示。你能告诉我我做错了什么吗?

提前谢谢你。

    public static Dictionary<Date, List<Name>> NameDays;

public class EqualityComparer : IEqualityComparer<Date>
{
public bool Equals(Date x, Date y)
{
return ((x.Day.Equals(y.Day)) && (x.Month.Equals(y.Month)));
}
public int GetHashCode(Date x)
{
return x.Day.GetHashCode() ^ x.Month.GetHashCode();
}
}

public static async void LoadNameDays()
{
NameDays = new Dictionary<Date, List<Name>>(new EqualityComparer());
.....

最佳答案

看来你的字典是空的。您可以使用字段初始化程序对其进行初始化,并且可以删除 LoadNameDays 方法中的字典初始化代码。

public static Dictionary<Date, List<Name>> NameDays = new Dictionary<Date, List<Name>>(new EqualityComparer());

此外,我建议您将字段设置为只读,以确保您正在处理同一件事,而不会无意中分配其他内容。

关于c# - 使用 EqualityComparer 初始化静态字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20801148/

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