草庐IT

test_short

全部标签

c# - 将 sbyte[] 转换为 bool[] 并将 char[] 转换为 short[]

有没有显式转换/强制转换sbyte[]或byte[]到bool[]char[]到short[]/ushort[]在CIL中,您经常会看到诸如stelemTypesbyte(ldlocpArray)ldc_i41ldc_i40正在执行pArray[1]=true,其中pArray是bool[]类型的一维数组。我想通过做在c#中复制它(sbyte[])pArray[1]=1;不幸的是,C#编译器不允许这样做。 最佳答案 未记录的技巧,风险自负:(例如here以及许多其他地方)[StructLayout(LayoutKind.Explic

c# - Net Core : Execute All Dependency Injection in Xunit Test for AppService, 存储库等

我正在尝试在AppService的Xunit测试中实现依赖注入(inject)。理想的目标是运行原始应用程序Startup/configuration,并使用Startup中的任何依赖注入(inject),而不是在我的测试中再次重新初始化所有DI,这就是整个目标。更新:Mohsen的回答很接近。需要更新几个语法/需求错误才能工作。由于某种原因,原始应用程序可以运行并且可以调用部门应用程序服务。但是,它不能调用Xunit。最后使用原始应用程序的启动和配置让Testserver工作。现在收到以下错误:Message:Thefollowingconstructorparametersdidn

c# - 为什么这个从 short 到 int 的转换会失败?

我们有一些代码可以将MicrosoftAccess数据库中的数据归档到MSSQLServer数据库中。假设我们已经从Access表中填充了一个数据读取器,并且我们正在向SqlCommand添加一个参数以准备插入,那么我们有一个失败的类型转换。这是代码:oSqlServerDbCmd_ForInsert.Parameters.AddWithValue("@Duration",(int)oReader["Duration"]);oReader中的字段实际上是一个AccessInteger,在C#中是一个short。如果我们在这里转换为short就没有问题。但是,如果我们转换为int,代码将

c# - 使用小数据类型(例如 short 而不是 int)是否会减少内存使用量?

我的问题基本上是关于C#编译器如何处理小型数据类型的内存分配。我确实知道,例如像add这样的运算符是在int上定义的,而不是在short上定义的,因此计算将被执行,就好像shorts是int成员一样。假设如下:没有与选择short作为数据类型相关的业务逻辑/验证逻辑我们不会对不安全的代码做任何事情是否尽可能使用short数据类型来减少我的应用程序的内存占用,是否建议这样做?或者使用short等不值得付出努力,因为编译器会分配int32的全部内存量,并在进行算术运算时添加额外的强制转换。任何有关假定的运行时性能影响的链接都将不胜感激。相关问题:WhyshouldIuseintinstea

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# - 区分 short、int、long 真的很重要吗?

在我的C#应用程序中,我想知道对较小的数字使用short,对较大的数字使用int等是否真的很重要。内存消耗真的很重要吗? 最佳答案 除非您以某种结构将大量这些打包在一起,否则它可能根本不会影响内存消耗。使用特定整数类型的最佳理由是与API的兼容性。除此之外,只需确保您选择的类型有足够的范围来涵盖您需要的值。除此之外,对于简单的局部变量,它并不重要。 关于c#-区分short、int、long真的很重要吗?,我们在StackOverflow上找到一个类似的问题:

c# - Visual Studio Express 2013 : Program output in unit tests (console, 调试等)

我真的要用头撞墙了。在VisualStudio(Express2013)中获取程序输出有那么难吗?在编写代码时,我发现在工作和故障排除时能够打印出变量、操作等的值是绝对必要的。在Java和Eclipse中,System.out.println()始终有效,打印到IDE控制台。在编写C程序时,我总是使用控制台,因此回显任何内容都没有问题。但是,在VSExpress2013中,我似乎无法获得任何输出。问题是否与我正在编写单元测试而不是“正常”可执行程序有关?如果是这样,有没有办法让VS在单元测试类中显示程序输出?我试过使用调试,但也没有显示任何内容。认为存在配置问题,我一直在寻找调试未显示

C#,NUnit : Is it possible to test that a DateTime is very close, 但不一定等于另一个?

假设我有这个测试:[Test]publicvoidSomeTest(){varmessage=newThing("foobar");Assert.That(thing.Created,Is.EqualTo(DateTime.Now));}例如,这可能会使Thing的构造函数失败,这会花费一些时间。是否有某种NUnit构造允许我指定Created时间不必完全等于DateTime.Now,只要它在一秒之内?是的,我知道构造函数不应该花费太多时间,但只是作为一个例子:p 最佳答案 没试过,但根据thedocs看起来这应该可行:Assert

c# - 单元测试 Asp.Net WebApi : how to test correct routing of a method with [FromUri] parameters

我想测试这个Controller:[HttpGet]publicIListGetNotificationsByCustomerAndId([FromUri]string[]name,[FromUri]int[]lastNotificationID){return_storage.GetNotifications(name,lastNotificationID,_topX);}特别是,在此方法中,我想测试传入输入以形成请求Url的数组是否与进入routeData.Values的数组相同。如果对于单值参数(不是数组)它有效,但不适用于数组。如果我调试Values,我只会看到controll

JavaScript 样式/优化 : String. indexOf() v. Regex.test()

我最近遇到了这段JavaScript代码:if(",>=,,".indexOf(","+sCompOp+",")!=-1)我很感兴趣,因为要编写这个测试我会这样做:if(/(>=|)/.test(sCompOp))这只是风格上的差异,还是其他代码的作者了解一些我不知道的优化知识?或者也许有不同的充分理由这样做,或者不使用正则表达式......?在我看来,为此使用String.indexOf()有点难以阅读(但是,我对正则表达式很满意),但是有没有实例可能比编写等效的正则表达式“更好”?通过可能更快或更有效的“更好”(尽管显然这取决于浏览器的JavaScript引擎)或其他一些我不知道的