不可调用的成员”不能像方法一样使用

我正面临着一个问题。 所以我会马上放置代码;

public static List blockedOpcodes = new List(); public static bool isOpcodeAllowed(ushort opcode) { lock (locker) { if (blockedOpcodes.Contains(opcode)) { Log1.LogMsg("Oops! Someone tried to send a blocked packet: 0x{" + opcode + ":X}"); return false; } return true; } } public static void Load() { lock (locker) { StreamReader reader; using (reader = new StreamReader("filter.txt")) { string str = null; while ((str = reader.ReadLine()) != null) { blockedOpcodes.Add(Convert.ToUInt16(str)); } } Log1.LogMsg("Opcode filter loaded!"); using (reader = new StreamReader("specialip.txt")) { string item = null; while ((item = reader.ReadLine()) != null) { specialIPs.Add(item); } } } } 

所以这些都在一个名为“程序”的类中我正在尝试做的是收集数据’操作码’来阻止’blockedOpcodes’

 if (Project_name.Program.blockedOpcodes(current.Opcode)) 

这就是错误出现的地方..

错误:

错误1不可调用的成员’Project_name.Program.blockedOpcodes’不能像方法一样使用。 C:\ Users \ skipper \ Desktop \ Project_name \ without \ src2 – Copy \ Project_name \ Clients.cs 584 63 Project_name

任何帮助将不胜感激,谢谢! PS:我是C#的初学者,我7天前开始了…

显然你需要

 if (Project_name.Program.blockedOpcodes[current.Opcode] != 0) 

而不是这个:

 if (Project_name.Program.blockedOpcodes(current.Opcode)) 

因为blockedOpcodes是一个列表而不是一个方法。

编辑:您需要将列表值与0 (或任何您认为是“无效”值)进行比较,因为您在列表中存储了int值。

编辑:要检查给定的OpCode是否在您的列表中,只需调用:

 if (blockedOpcodes.Contains(current.Opcode)) { /* ... */ }