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

如何在C#中使指针通用?,第1张

概述我有一个WriteableBitmap,我使用一个不安全的方法来绘制像素.基本部分看起来像这样: private unsafe void DrawBitmap(WriteableBitmap bitmap, byte[] pixels){ // Boilerplate omitted... fixed (byte* pPixels = pixels) 我有一个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...
总结

以上是内存溢出为你收集整理的如何在C#中使指针通用?全部内容,希望文章能够帮你解决如何在C#中使指针通用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1252690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存