草庐IT

c# - 随机整数中最可能的位

我做过这样的实验——用C和C#制作了1000万个随机数。然后统计随机整数中15位中的每一位被设置了多少次。(我选择15位是因为C只支持最大0x7fff的随机整数)。我得到的是:我有两个问题:为什么有3个最可能的位?在C情况下,位8,10,12是最有可能的。和C#位6,8,11最有可能。与C#最可能位相比,C#最可能位也似乎大部分移动了2个位置。为什么是这样?因为C#使用其他RAND_MAX常量还是什么?我的C测试代码:voidaccumulateResults(intrandom,intbitSet[15]){inti;intisBitSet;for(i=0;iC#的测试代码:stat

c# - 动态给图像 C# 加水印的最有效方法?

我有一个用asp.netc#(Webforms)构建的电子商务商店,很多新产品图片很难找到,所以我想用我们的Logo或域名给它们加水印。产品太多无法直接下载图片加水印,图片编辑经验有限的用户会上传新的(所以他们不知道如何加水印)。所以我想我只能使用HttpHandler了吗?是/否?如果可以,考虑到一些页面将有大约20张图像(Jpegs)(都需要加水印) 最佳答案 我会获取jpeg的Graphics对象,然后在该项目的顶部绘制水印,并再次保存水印:using(Imageimage=Image.FromFile("myImage.jp

c# - 找到最内层异常的正确方法?

我正在处理一些类,这些类在抛出时具有相对较深的InnerException树。我想记录最里面的异常并对其采取行动,这是导致问题真正原因的异常。我目前正在使用类似的东西publicstaticExceptiongetInnermostException(Exceptione){while(e.InnerException!=null){e=e.InnerException;}returne;}这是处理异常树的正确方法吗? 最佳答案 我认为您可以使用以下代码获取最里面的异常:publicstaticExceptiongetInnermo

c# - 如何最有效地测试两个数组是否包含 C# 中的等效项

我有两个数组,我想知道它们是否包含相同的项。Equals(objectobj)不起作用,因为数组是引用类型。我在下面发布了我的尝试,但由于我确定这是一项常见任务,所以我想知道是否有更好的测试。publicboolContainsEquivalentSequence(T[]array1,T[]array2){boola1IsNullOrEmpty=ReferenceEquals(array1,null)||array1.Length==0;boola2IsNullOrEmpty=ReferenceEquals(array2,null)||array2.Length==0;if(a1IsN

c# - 我怎样才能等待最短时间?

我有一个异步C#方法,我在其中获取HTTP资源,并且在无限循环中进行。但是我不想太快地使用资源。我当前的代码是:HttpClienthttp=newHttpClient();while(true){//Long-polltheAPIvarresponse=awaithttp.GetAsync(buildUri());Console.WriteLine("Resp:"+response.ToString());Console.WriteLine("CONTENT:");Console.WriteLine(awaitresponse.Content.ReadAsStringAsync())

c# - 在 C# 中将控制台窗口置于最前面

如何在C#中将控制台应用程序窗口置于最前面(尤其是在运行VisualStudio调试器时)? 最佳答案 它很老套,很可怕,但对我有用(谢谢,pinvoke.net!):usingSystem;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;usingSystem.Threading;publicclassTest{[DllImport("user32.dll")][return:MarshalAs(UnmanagedType.Bool)]staticextern

c# - 快速算法找到 x 最接近平面上给定点的点

我想找到一种快速算法,以便找到与平面上给定点最近的x个点。我们实际上处理的点并不多(在1,000到100,000之间),但我需要这些点中的每一个点的x个最近点。(其中x通常介于5和20之间。)我需要用C#编写它。关于用例的更多上下文:这些点是map上的坐标。(我知道,这意味着我们并不是在谈论一个平面,但我希望避免处理投影问题。)在端点附近有很多其他点应该显示为红色,没有太多的点靠近它们的点应显示为绿色。在这两个极端之间,点在颜色渐变上。 最佳答案 您需要的是适合组织平面中点的数据结构。K-D-Tree经常用于这种情况。参见k-dtr

c# - 从用户输入的逗号分隔字符串中删除所有额外空格到数组中的最干净的方法是什么

程序让用户在数组中输入逗号分隔的字符串:basketball,baseball,soccer,tennis逗号之间可以有空格,也可以没有。如果这个字符串只是逗号上的split(),那么数组中的某些项目可能在它们之前或之后有空格。清理它的最佳方法是什么? 最佳答案 您可以为此使用Regex.Split:string[]tokens=Regex.Split("basketball,baseball,soccer,tennis",@"\s*,\s*");正则表达式\s*,\s*可以读作:“匹配零个或多个空白字符,后跟逗号和零个或多个空白字

c# - 如何将非托管应用程序窗口置于最前面,并使其成为(模拟)用户输入的事件窗口

我假设我需要使用pinvoke,但我不确定需要调用哪些函数。场景:遗留应用程序将运行,我将拥有该应用程序的句柄。我需要:将该应用程序置于顶部(在所有其他窗口之前)使其成为事件窗口需要调用哪些Windows函数? 最佳答案 如果您没有窗口句柄,请在之前使用它:[DllImport("user32.dll",SetLastError=true)]staticexternIntPtrFindWindow(stringlpClassName,stringlpWindowName);现在假设您有应用程序窗口的句柄:[DllImport("us

c# - 现在从C#访问数据库最常用的方法是什么

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion好吧,我问这个问题是因为我完全糊涂了。我曾经使用普通方法从C#访问数据库(我的意思是使用SQLConnection、OracleConnection、SQLCommand、executequery等)。然后我听说了ADO.NET、ORM并学习了NHibernate(不是专业人士,但我可以管理)。最近我没有看到任何关于NHibernate的特别事件。我周围曾经使用NHibernate(并且是