访问数组至极似乎没有数组O.o [英] Accessing a array wich seems to be no array O.o

查看:102
本文介绍了访问数组至极似乎没有数组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]; // :-)



—SA



—SA


这篇关于访问数组至极似乎没有数组O.o的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆