草庐IT

while循环

全部标签

c# - 同一程序集中的循环引用是一件坏事吗?

假设我在同一个程序集中有以下类publicclassParentClass:IDisposable{publicChildClassChild{get{return_child;}}}publicclassChildClass{publicParentClassParent{get{return_parent;}set{_parent=value;}}publicChildClass(ParentClassparent){Parent=parent;}}如果我错了请纠正我,但这是糟糕的设计。这会导致内存泄漏或其他一些不可预见的问题吗?显然垃圾收集器能够处理suchkindofcircu

c# - 如何从嵌套方法 'continue' ForEach 循环?

我有一个ForEach循环来处理相当大的联系人列表。我没有在这个主循环中做一堆处理,而是调用一个方法,该方法又调用一个方法等。方法调用其他类中的其他方法,可能是其他命名空间。如果检测到条件并且我想继续进行下一个联系,我该如何中断当前方法?我在距主ForEach循环几个级别的方法中。通常,您可以在ForEach中使用continue关键字跳到集合中的下一个元素。continue在这种情况下不是一个选项。当我键入continue时,它会带有红色下划线和“Unresolved消息”注释。那么,我该怎么办? 最佳答案 你走错了路;退后一步,

c# - 如何打破实体之间的循环关联?

我第一次访问该网站,如果标记不正确或在其他地方得到回答,我深表歉意...我在当前项目中不断遇到特殊情况,我想知道你们会如何处理它。模式是:父级有一组子级,父级有一个或多个对子级集合中特定项目的引用,通常是“默认”子级。一个更具体的例子:publicclassSystemMenu{publicIListItems{get;privateset;}publicMenuItemDefaultItem{get;set;}}publicclassMenuItem{publicSystemMenuParent{get;set;}publicstringName{get;set;}}对我来说,这似乎

c# - 构造函数或属性 : which one is the better choice while assigning values

在赋值时我们应该在属性上使用构造函数,反之亦然。 最佳答案 构造函数是一种非常方便且功能强大的契约类型-一种要求消费者在甚至可以使用您的对象之前提供某些信息的方法。因此,对于实例正常运行所必需的信息,请使用构造函数参数。这是依赖注入(inject)的基本概念-任何你依赖于完成你的工作的东西,都必须在你开始之前注入(inject)(提供)给你。属性可以代表一个有趣的问题。总的来说,经验告诉我,只要有可能,属性应该是只读的,对象通常应该尽可能在外部不可变。将公共(public)setter添加到属性会使您的类的复杂性成倍增加。当然总是有

c# - 在 C# 中使用多线程加速循环(问题)

假设我有一个函数,它遍历一百万/十亿个字符串并检查其中的某些内容。例如:foreach(StringiteminListOfStrings){result.add(CalculateSmth(item));}它会消耗很多时间,因为CalculateSmth是一个非常耗时的函数。我想问一下:这种进程怎么集成多线程?f.ex:我想启动5个线程,每个线程都返回一些结果,这样一直持续到列表有项目为止。也许任何人都可以展示一些示例或文章..忘了说我在.NET2.0中需要它 最佳答案 你可以试试Parallelextensions(.NET4.

c# - For循环计算阶乘

目前我有这组代码,它用于计算阶乘。intnumberInt=int.Parse(factorialNumberTextBox.Text);for(inti=1;i出于某种原因,它不起作用,我也不知道为什么。例如,我将输入3并得到-458131456的答案,这看起来很奇怪。感谢任何帮助。谢谢 最佳答案 intnumberInt=int.Parse(factorialNumberTextBox.Text);intresult=numberInt;for(inti=1;i旁注:这通常不是计算阶乘的正确方法。在开始计算之前,您需要检查输入,

c# - 无限循环使 TimeManager 无效

我在我的WPF应用程序中遇到了一个非常棘手的缺陷,需要追踪。错误信息是:AninfiniteloopappearstohaveresultedfromrepeatedlyinvalidatingtheTimeManagerduringtheLayout/Renderprocess.堆栈跟踪(它的值(value))是:atSystem.Windows.Media.MediaContext.RenderMessageHandlerCore(ObjectresizedCompositionTarget)atSystem.Windows.Media.MediaContext.RenderMes

c# - 在循环外添加一个 Console.WriteLine() 会改变循环的计时 - 为什么?

考虑以下代码:usingSystem;usingSystem.Diagnostics;namespaceDemo{classProgram{staticvoidMain(string[]args){Stopwatchsw=newStopwatch();for(inttrial=0;trial当我使用VisualStudio2010在Windows7x64上编译并运行此版本的RELEASEx86版本时,我得到以下计时(在IntelCorei7上运行)loop1()took00:00:01.7935267loop2()took00:00:01.4747297loop3()took00:00

c# - 为什么使用 `foreach` 循环数组对象比 lambda `ForEach` 更快?

我在一个数组上工作,我必须遍历它。首先,我使用lambdaForEachArray.ForEach(array,(intcounter)=>{Console.WriteLine(counter);});然后我使用简单的foreach。我发现简单的foreach比lambdaForEach快得多,但是当我用通用列表测试它时,ForEach比简单的快foreach.为什么使用foreach循环数组对象比lambdaForEach更快?更新:我在数组上测试 最佳答案 我稍微编辑了Keith的代码-在我的机器上,foreach的执行速度大约

c# - TcpListener : how to stop listening while awaiting AcceptTcpClientAsync()?

我不知道如何在异步方法等待传入连接时正确关闭TcpListener。我在SO上找到了这段代码,这里是代码:publicclassServer{privateTcpListener_Server;privatebool_Active;publicServer(){_Server=newTcpListener(IPAddress.Any,5555);}publicasyncvoidStartListening(){_Active=true;_Server.Start();awaitAcceptConnections();}publicvoidStopListening(){_Active=