如何在C#中使指针通用?

kas*_*rhj 5 c#

我有一个WriteableBitmap我使用不安全的方法来绘制像素.基本部分看起来像这样:

private unsafe void DrawBitmap(WriteableBitmap bitmap, byte[] pixels)
{
         // Boilerplate omitted... 

        fixed (byte* pPixels = pixels)
        {
            for (int y = 0; y < height; y++)
            {
                var row = pPixels + (y * width);
                for (int x = 0; x < width; x++)
                {
                    *(row + x) = color[y + height * x];
                }
            }
        }

        bitmap.WritePixels(new Int32Rect(0, 0, width, height), pixels, width*pf.BitsPerPixel/8, 0);
}
Run Code Online (Sandbox Code Playgroud)

但是,不确定用户想要绘制的是什么类型byte,并且使这个方法通用(即DrawBitmap<T>)是有意义的但是如何使pPixels类型的指针T*

是否有其他技巧可以使我的DrawBitmap通用?

Luk*_*ley 3

考虑使用重载

public void MethodA(byte[] pPixels) {}
public void MethodA(int[] pPixels {}
//etc...
Run Code Online (Sandbox Code Playgroud)