访问数组至极似乎没有数组O.o [英] Accessing a array wich seems to be no array O.o
本文介绍了访问数组至极似乎没有数组O.o的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
DLL:
The DLL:
public static List<byte[]> RequestDialoge(int NPCID,int Control)
{
List<byte[]> CombinedPacket = new List<byte[]>();
CombinedPacket = Dialoge.Create(NPCID, Control);
return CombinedPacket;
}
我要如何使用它:
How i want to use it:
int NPCID = BitConverter.ToInt32(Packet, 4);
int Control = (int)Packet[10];
Cli.CurrentNPC = NPCID;
object[] Data = new object[2];
Data[0] = NPCID;
Data[1] = Control;
Assembly assembly = Assembly.LoadFile(@"Y:\OS Share\C#\DynamicNpcDialoge.dll\bin\Debug\DynamicNpcDialoge.dll");
Type T = assembly.GetType("DynamicNpcDialoge.dll.DynamicNpcDialog");
MethodInfo foo = T.GetMethod("RequestDialoge");
object Packers = foo.Invoke(T, Data);
已经有了解决方案,我只是想太复杂了
Got my solution already, i was just thinking too complicated
List<byte[]> packets = Packers as List<byte[]>;
封隔器现在变成计数5
这5个中的每一个都包含一个字节数组,
但是,我不知道如何访问它们...
有什么想法吗?
Packers now becomes count 5
Every of that 5 contains a byte array,
however, i dont know how to access them...
Any Ideas?
推荐答案
您的代码对我来说还不是很清楚,但是提供的数据结构对用户来说就像一个数组,而在实现中不是一个数组很容易:
Your code is not quite clear to me, but providing a data structure that looks like an array for a user and is not an array in implementation is quite easy:
internal struct Element {/*..*/} //or class
class ElementContainer {
internal Element Add(Element element) {/*...*/ return element; }
internal void AddRange(Element[] elements) {/*...*/}
//...
internal Element this[int index] { get { return GetElement; } }
#region implementation
Element GetElement(int index) {/*...*/}
//all complexity is hidden here :-)
#endregion implementation
}
//usage:
ElementContainer container = new ElementContainer(/*...*/);
container.Add(/*...*/);
contaner.AddRange(/*...*/);
Element myElement = container[3]; // :-)
这篇关于访问数组至极似乎没有数组O.o的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文