从另一个类访问字典不能正常工作

本文关键字:常工作 工作 不能 另一个 访问 字典 | 更新日期: 2023-09-27 17:53:14

我对c#相当陌生,过去3天一直在努力学习。我很好奇为什么下面的代码不能正常工作?我得到以下错误:对象引用未设置为对象的实例。当我尝试调用data.dOffsets["roomtargets"]时。但是,调用数据。sProcessName工作没有任何错误。

我有两个类/文件。program.cs:

class Program
    {
        public static Data data = new Data();
        static void Main(string[] args)
        {
            Console.WriteLine("data.sProcessName: {0}", data.sProcessName);
            Console.WriteLine("data.dOffsets['"roomtargets'"]: {0}", data.dOffsets["roomtargets"]);

And the Data.cs:

public class Data
    {
        public string sProcessName { get; set; }
        public Dictionary<string, int> dOffsets { get; set; }
        public Data()
        {
            sProcessName = "Client";
            Dictionary<string, int> dOffsets = new Dictionary<string, int>()
            {
                {"roomtargets", 0x0018FA48}
            };
        }
    }

任何帮助都将非常感激!

从另一个类访问字典不能正常工作

        Dictionary<string, int> dOffsets = new Dictionary<string, int>()
        {
            {"roomtargets", 0x0018FA48}
        };

这段代码将字典初始化为构造函数中的内部变量。改为:

        dOffsets = new Dictionary<string, int>()
        {
            {"roomtargets", 0x0018FA48}
        };

this.dOffsets更清楚

dOffsets对于构造函数来说是局部的。你的类已经有这个属性了,所以你不需要在这里声明另一个局部变量

public Data()
{
    sProcessName = "Client";
    dOffsets = new Dictionary<string, int>()
    {
        {"roomtargets", 0x0018FA48}
    };
}

应该可以