Compare byte[] to T

Viewed 218

I want to make a list of pointers to locations that contains a certain value in the process memory of another process. The value can be a short, int, long, string, bool or something else.

My idea is to use Generics for this. I have one problem with making it, how can I tell the compiler to what type he needs to convert the byte array?

This is what I made:

    public List<IntPtr> ScanProccessFor<T>(T ItemToScanFor)
    {
        List<IntPtr> Output = new List<IntPtr>();

        IntPtr StartOffset = SelectedProcess.MainModule.BaseAddress;
        int ScanSize = SelectedProcess.MainModule.ModuleMemorySize;

        for (int i = 0; i < ScanSize; i++)
            if (ReadMemory(SelectedProcess, StartOffset + i, (UInt16)Marshal.SizeOf(ItemToScanFor)) == ItemToScanFor)
                Output.Insert(Output.Count,StartOffset + i);

        return Output;
    }

How can I tell the compiler that he needs to convert the byte[] to type T?

2 Answers
Related