草庐IT

bytes-like

全部标签

c# - Galaxian-like 敌人运动

我正在制作一个类似银河系的射击游戏,我的敌人对象有一个目的地Vector,它们使用这段代码前往:position.X-=(Motion.X/Magnitude)*Speed;position.Y-=(Motion.Y/Magnitude)*Speed;运动是通过以下方式制定的:this.Motion=InitialPosition-Destination;这使他们沿着直线前往目的地。不过,我想让它们更有趣一点,并在sin或cos波上旅行,有点像Galaxian。我该怎么做? 最佳答案 与正弦波等简单函数相比,为移动函数定义贝塞尔曲线

c# - 字典 : search key strings with a like feature

我想用类似的功能在字典中搜索我的关键字。我想拿key以“a”开头或者他们的第三个字母是“e”或者他们的第四个字母不是“d”在sql中可以编写查询“where(keylike'a')and(keynotlike'd__')“我想拥有这个功能对于字典。您有什么算法建议吗?谢谢! 最佳答案 虽然这将是表扫描的SQL等效项,但您可以使用LINQ或IEnumerable用于在字典中搜索其键与模式匹配的所有值的扩展方法:扩展方法:varvalues=dictionary.Where(pv=>pv.Key.StartsWith("A")||(pv

c# - 背靠背 for 循环中的 int、short、byte 性能

(背景:WhyshouldIuseintinsteadofabyteorshortinC#)为了满足我自己对使用“适当大小”整数与“优化”整数的优缺点的好奇心,我编写了以下代码,这些代码强化了我之前对.Net中的int性能的看法(并对此进行了解释在上面的链接中)这是针对int性能而不是short或byte进行了优化。DateTimet;longa,b,c;t=DateTime.Now;for(intindex=0;index这在......方面给出了大致一致的结果~950000~2000000~1700000这符合我的预期。然而,当我尝试像这样为每种数据类型重复循环时......t=D

c# - 将 bool 转换为 byte 的最快方法是什么?

将bool转换为byte的最快方法是什么?我想要这个映射:False=0,True=1注意:我不想使用任何if语句或其他条件语句。我不希望CPU停止或猜测下一条语句。更新:对于那些想了解这个问题的人。此示例显示如何从代码中减少两个if语句。byteA=k>9;//Ifitwaspossible(k>9)==0||1c[i*2]=A*(k+0x37)-(A-1)*(k+0x30); 最佳答案 使用不安全代码这个方法非常快。启用优化后,它比条件运算符快约30%。boolinput=true;bytevalue=*((byte*)(&in

c# - 为什么从 byte 到 sbyte 的转换会为优化代码提供错误的值?

安装NUnit3后,可以使用以下代码示例重现该问题。[TestFixture]publicclassSByteFixture{[Test]publicvoidTest(){vardata=newbyte[]{0xFF};sbytex=-128;data[0]=(byte)x;byteb1=data[0];varb2=(sbyte)b1;Assert.AreEqual(b1.ToString(),"128");Assert.AreEqual(b2.ToString(),"-128");}}该项目应该是一个类库,因为在控制台应用程序中它是不可复制的。应该启用优化,即csproj文件中的以下

C# - 将不安全的 byte* 转换为 byte[]

我有一个unsafebyte*指向已知长度的native字节数组。如何将其转换为byte[]?指向零终止native字符串的unsafesbyte*可以很容易地转换为C#string,因为有一个conversionconstructor为此目的,但我找不到将byte*转换为byte[]的简单方法。 最佳答案 如果ptr是您的不安全指针,并且数组的长度为len,您可以像这样使用Marshal.Copy:byte[]arr=newbyte[len];Marshal.Copy((IntPtr)ptr,arr,0,len);但我确实想知道您

c# - 如何为 Like 创建 System.Linq.Expressions.Expression?

我创建了一个可过滤的绑定(bind)列表fromthissource.效果很好:list.Filter("Customer=='Name'");做它应该做的。内部结构像解析器一样工作,将表达式==或!=转换为System.Linq.Expressions.Expression。在这种情况下,==变为System.Linq.Expressions.Expression.Equal。不幸的是System.Linq.Expressions.Expression不包含like运算符,我不知道如何解决这个问题。初始代码如下所示:privatestaticDictionary>binaryOpFa

C#.NET : Convert Icon to byte[] and back again

如何在System.Drawing.Icon类型和byte[]之间进行转换?我正在寻找可以(希望)在.NET2中工作的简单方法。 最佳答案 你通过MemoryStream,基本上:publicstaticbyte[]IconToBytes(Iconicon){using(MemoryStreamms=newMemoryStream()){icon.Save(ms);returnms.ToArray();}}publicstaticIconBytesToIcon(byte[]bytes){using(MemoryStreamms=ne

c# - 从 SqlDataReader 获取 byte[]?

我有一个带有varbinary(MAX)参数的表。执行查询后,我会将结果存储在SqlDataReader中,因为它有多个列作为输出。SqlCommandcmd=newSqlCommand("selectleave_detailsfromLeaveTable");SqlDataReaderobj;con.Open();obj=cmd.ExecuteReader();现在我想将每一行的结果转换为byte[]。这个不行::byte[]b=null;obj.GetBytes(0,0,b,0,1024); 最佳答案 试试GetValue()方

c# - 如何将 Bitmap 转换为 byte[]?

基本上,我使用ListView插入事件插入图像,尝试从文件上传控件调整图像大小,然后使用LINQ将其保存在SQL数据库中。我找到了一些代码来创建fileupload控件中内容的新位图,但这是为了将其存储在服务器上的文件中,来自thissource,但我需要将位图保存回SQL数据库,我认为我需要将其转换回byte[]格式。那么如何将位图转换为byte[]格式呢?如果我以错误的方式解决这个问题,我将不胜感激,您可以纠正我。这是我的代码://FindthefileUploadcontrolstringfilename=uplImage.FileName;//Createabitmapinme