草庐IT

有效性

全部标签

c# - 为什么这种从 int 到 uint 的隐式转换有效?

使用Castingnulldoesn'tcompile作为灵感,来自EricLippert的评论:Thatdemonstratesaninterestingcase."uintx=(int)0;"wouldsucceedeventhoughintisnotimplicitlyconvertibletouint.我们知道这行不通,因为object不能分配给string:stringx=(object)null;但这确实如此,尽管从直觉上它不应该:uintx=(int)0;当int不能隐式转换为uint时,为什么编译器允许这种情况? 最佳答案

c# - 字符串的哈希码在 .NET Core 2.1 中被破坏,但在 2.0 中有效

我最近将我的一个项目从.NETCore2.0升级到了.NETCore2.1。这样做之后,我的几个测试开始失败。缩小范围后,我发现在.NETCore2.1中,无法使用具有字符串排序比较选项的文化感知比较器来计算字符串的哈希码。我创建了一个重现我的问题的测试:[TestMethod]publicvoidCan_compute_hash_code_using_invariant_string_sort_comparer(){varcompareInfo=CultureInfo.InvariantCulture.CompareInfo;varstringComparer=compareInfo

c# - 有效地组合多个像素着色器

所以我正在用XNA3.1做一些事情,我有很多通过像素着色器应用的独立效果。这些来自各种来源,例如特殊攻击、环境等。我遇到的问题是我注意到帧速率显着降低。目前,我正在将整个场景绘制到RenderTarget2D,然后将所有效果应用到它。我存储了一个包含效果及其ID的SortedDictionary(这些ID用于在运行时更改参数),我对其进行迭代并一个接一个地应用每个效果:foreach(KeyValuePair,Effect>pinrenderEffects){Effectr=p.Value;g.SetRenderTarget(0,MainGame.MainRenderTarget);/

c# - LINQ中基于索引加入的有效方法

我已经编写了有效的代码,但我似乎找不到更好的方法来将具有相同索引的列表组合在一起。classApple{};classCarrot{};varapples=newlist();varcarrot=newlist();varcombine=fromainapplesfromcincarrotswhereapples.IndexOf(a)==carrots.IndexOf(c)selectnew{a,c};(当我说combine时,我并不是说追加到列表的末尾。{{a,b},{a,b},....{}}:也许我用错了术语试图研究。) 最佳答案

c# - 如何在C#中有效地在桌面上绘图?

我想用C#直接在桌面上画图。经过一番搜索,我最终使用了来自DesktopHDC(null)的Graphics对象。然后,我使用这个Graphics对象正常绘画。问题是当屏幕的任何部分被重绘时我的形状会丢失。我尝试了一个While循环,但它实际上以应用程序所能达到的速度结束绘制,这不是桌面的更新速率。通常,我需要将我的绘图代码放在“OnPaint”事件中,但桌面上不存在这样的事情。我该怎么做?示例代码:https://stackoverflow.com/questions/1536141/how-to-draw-directly-on-the-windows-desktop-c

c# - 将 DataTable 转换为 CSV 的最有效方法

我正在使用DataTable,我需要将它们转换为CSV文件格式。我正在使用的大多数表都有超过50,000条记录,因此我尽量减少转换它们所需的时间。这是我目前的方法:publicstaticstringtable_to_csv(DataTabletable){stringfile="";foreach(DataColumncolintable.Columns)file=string.Concat(file,col.ColumnName,",");file=file.Remove(file.LastIndexOf(','),1);file=string.Concat(file,"\r\n"

c# - 查找 C# 列表中是否存在值的最有效方法

这个问题在这里已经有了答案:AmongFind,Single,First,whichoneisthefastest?(5个答案)关闭9年前。在C#中,如果我有一个bool类型的列表。确定列表是否包含真值的最快方法是什么?我不需要知道真正的值(value)有多少或在哪里。我只需要知道是否存在。我将搜索许多非常大的列表。

c# - 在 C# 中确定未修剪的字符串是否为空的最有效方法是什么?

我有一个字符串,周围可能有空白字符,我想检查它是否本质上是空的。有很多方法可以做到这一点:1if(myString.Trim().Length==0)2if(myString.Trim()=="")3if(myString.Trim().Equals(""))4if(myString.Trim()==String.Empty)5if(myString.Trim().Equals(String.Empty))我知道这通常是一个明显的过早优化案例,但我很好奇并且有可能这样做足以对性能产生影响。那么,哪种方法最有效?有没有我没有想到的更好的方法?编辑:此问题的访问者注意事项:已经对这个问题进

c# - 从 'foreach' 中有效地删除项目

目前,我能想到的最好的是:booloneMoreTime=true;while(oneMoreTime){ItemTypetoDelete=null;oneMoreTime=false;foreach(ItemTypeitemincollection){if(ShouldBeDeleted(item)){toDelete=item;break;}}if(toDelete!=null){collection.Remove(toDelete);oneMoreTime=true;}}我知道这里至少有一个额外的变量,但我将其包括在内以提高算法的可读性。 最佳答案

c# - 当 SMTP 服务器具有有效证书时获取 "The remote certificate is invalid according to the validation procedure"

这似乎是一个常见错误,但虽然我找到了解决方法(见下文),但我无法确定我首先遇到它的原因。我正在将SMTP功能写入我们的应用程序,并且我正在尝试将SSL功能添加到我们已有的工作SMTP中。我正在使用我们公司的MSExchange服务器进行测试,特别是在该服务器上启用的网络邮件选项。通过不验证我的连接并匿名发送,我可以通过我的代码在内部发送电子邮件,但是由于我们公司的政策,这些电子邮件不会转发到外部电子邮件地址。除此之外,我正在为我们的客户编程,他们并不都允许开放中继和/或匿名连接。我相信Exchange服务器正在使用显式SSL/TLS。我已经尝试在端口25上通过telnet连接到服务器的