[英]How to compare a two Cursor objects?
我正在创建一个单元测试,我有一个应该由特定Bitmap
制作的Cursor
。 Cursor
是使用以下代码创建的:
cursor = new Cursor(bmp.GetHicon());
其中bmp
是Bitmap
。
这总是使测试失败(由bmp.GetHicon()
创建的句柄总是新的):
Assert.AreEqual(bmp.GetHicon(), cursor.Handle);
我也想过使用Icon.FromHandle
。
事实上,您正在寻找如何比较两个游标。
您有位图和游标,并且您想检查是否使用位图创建了游标。 为此,作为一种选择,从位图创建一个游标然后进行比较,将这两个游标(从位图创建的新游标和现有游标)保存到流中并比较流。
例如:
bool ArEqual(Cursor cur1, Cursor cur2)
{
byte[] bytes1, bytes2;
using (var ico = Icon.FromHandle(cur1.Handle))
using (var fs = new MemoryStream())
{
ico.Save(fs);
bytes1 = fs.ToArray();
}
using (var ico = Icon.FromHandle(cur2.Handle))
using (var fs = new MemoryStream())
{
ico.Save(fs);
bytes2 = fs.ToArray();
}
return bytes1.SequenceEqual(bytes2);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.