不可调用的成员”不能像方法一样使用
我正面临着一个问题。 所以我会马上放置代码;
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)) { /* ... */ }