我是 C# 的新手,过去 3 天一直在努力学习。我很好奇为什么下面的代码不能正常工作?当我尝试调用 data.dOffsets["roomtargets"] 时,出现以下错误:未将对象引用设置为对象的实例。。但是,调用 data.sProcessName 确实没有任何错误。
我有两个类/文件。程序.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"]);
和 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
使其更清晰。
关于C# 从另一个类访问字典不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14304770/