加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 05:37:59 所属栏目:百科 来源:网络整理
导读:我有一个WriteableBitmap,我使用一个不安全的方法来绘制像素.基本部分看起来像这样: private unsafe void DrawBitmap(WriteableBitmap bitmap,byte[] pixels){ // Boilerplate omitted... fixed (byte* pPixels = pixels) { for (int y = 0; y height; y++)
我有一个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,width,height),pixels,width*pf.BitsPerPixel/8,0);
}

然而,不确定用户想要绘制的是字节类型,并且使该方法通用(即,DrawBitmap< T>)是有意义的,但是如何使指针pPixel类型为T *?

还有其他一些技巧会让我的DrawBitmap变得通用吗?

解决方法

考虑使用 overloads.
public void MethodA(byte[] pPixels) {}
public void MethodA(int[] pPixels {}
//etc...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读